gpt4 book ai didi

python - Django反向查找外键不起作用

转载 作者:行者123 更新时间:2023-12-01 03:18:08 24 4
gpt4 key购买 nike

我想要获取特定的 Video 对象,然后按照文档中所述使用foreignkey反向查找查找与其关联的所有Rating对象。

我有模型:

class Video(models.Model):
...
rating_int = models.IntegerField(default=1, choices=CHOICES, name='rating_int')
def __str__(self):
return self.title


class Rating(models.Model):
video = models.ForeignKey('Video', related_name='video', null=True)

和 View :

def video_ratings(request):
vid_rate = Video.objects.get(pk=1)
ratings_of_video = vid_rate.rating_set.all()
context = {
'vid_rate': vid_rate, 'ratings_video': ratings_of_video
}
return HttpResponse(template.render(context, request))

当我尝试运行此程序时,出现错误'Video' object has no attribute ' rating_set'

但是当我阅读 django 文档时,它告诉我当你进行反向查找时,你需要使用这个 _set.all() 命令。我不确定这里缺少什么。

最佳答案

您已在外键循环中指定了 related_name。所以 rating_set 现在不应该工作。

你可以这样查找

ratings_of_video = vid_rate.video.all()

更好的命名约定是在您的 related_name 中使用 ratings

class Rating(models.Model):
video = models.ForeignKey('Video', related_name='ratings', null=True)

然后查询类似

ratings_of_video = vid_rate.ratings.all()

关于python - Django反向查找外键不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42264717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com