在Django中,如何使用特定的用户外键获取所有相关对象

时间:2011-11-03 20:24:07

标签: django django-models django-authentication django-related-manager

我有这样的事情:

class Video(models.Model):
    user = models.ForeignKey(User, related_name='owner')
    ...

我试图通过执行以下操作来访问特定用户的所有视频:

u = User.objects.get(pk=1)
u.video_set.all()

我收到错误'用户对象没有属性video_set'

我做错了吗?

1 个答案:

答案 0 :(得分:7)

related_name是从目标模型引用它的名称(在本例中为User)。您设置它的方式应该是:

u = User.objects.get(pk=1)
u.owner.all()

但是为了清楚起见,您可能应该将相关名称设置为related_name='video_set'(这是btw的默认名称)。然后你可以调用看起来更合乎逻辑的u.video_set.all()