我有这样的事情:
class Video(models.Model):
user = models.ForeignKey(User, related_name='owner')
...
我试图通过执行以下操作来访问特定用户的所有视频:
u = User.objects.get(pk=1)
u.video_set.all()
我收到错误'用户对象没有属性video_set'
我做错了吗?
答案 0 :(得分:7)
related_name是从目标模型引用它的名称(在本例中为User)。您设置它的方式应该是:
u = User.objects.get(pk=1)
u.owner.all()
但是为了清楚起见,您可能应该将相关名称设置为related_name='video_set'
(这是btw的默认名称)。然后你可以调用看起来更合乎逻辑的u.video_set.all()
。