7

我有这样的事情:

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

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

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

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

难道我做错了什么?

4

1 回答 1

15

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

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

但是,为了清楚起见,您可能应该将相关名称设置为类似的related_name='video_set'名称(顺便说一句,这是它的默认名称)。然后你可以打电话给u.video_set.all()哪个看起来更合乎逻辑。

于 2011-11-03T20:29:57.273 回答