我有以下模型设置。
from django.db import models
from django.contrib.auth.models import User
class SomeManager(models.Manager):
def friends(self):
# return friends bla bla bla
class Relationship(models.Model):
"""(Relationship description)"""
from_user = models.ForeignKey(User, related_name='from_user')
to_user = models.ForeignKey(User, related_name='to_user')
has_requested_friendship = models.BooleanField(default=True)
is_friend = models.BooleanField(default=False)
objects = SomeManager()
relationships = models.ManyToManyField(User, through=Relationship, symmetrical=False)
relationships.contribute_to_class(User, 'relationships')在这里,我使用User对象并使用contribute_to_class将“关系”添加到User对象。关系显示出来了,但是如果调用User.relationships.friends,它应该运行friends()方法,但它失败了。你知道我该怎么做吗?
谢谢
发布于 2011-01-07 07:00:07
我会这样做。
f= Relationships.objects.filter( from_user=some_user, is_friend=True )这样就省去了和用户打交道的麻烦。
发布于 2011-01-07 06:51:35
也许你在调用中遗漏了".objects“:
User.relationships.objects.friends()发布于 2011-01-07 17:25:07
你需要告诉Django使用你的管理器进行相关的查找-默认情况下,它对这些使用标准的管理器。您需要在管理器上设置use_for_related_fields -请参阅the documentation on this。
https://stackoverflow.com/questions/4620830
复制相似问题