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

9-b*_*its 4 django django-models django-authentication django-related-manager

我有这样的事情:

class Video(models.Model):
    user = models.ForeignKey(User, related_name='owner')
    ...
Run Code Online (Sandbox Code Playgroud)

并且我正在尝试通过执行以下操作来访问特定用户拥有的所有视频:

u = User.objects.get(pk=1)
u.video_set.all()
Run Code Online (Sandbox Code Playgroud)

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

难道我做错了什么?

Lyc*_*cha 10

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

u = User.objects.get(pk=1)
u.owner.all()
Run Code Online (Sandbox Code Playgroud)

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