gpt4 book ai didi

python - 如何在 django 中编写带有过滤器和按条件排序的连接三个表的查询

转载 作者:太空宇宙 更新时间:2023-11-03 17:56:55 25 4
gpt4 key购买 nike

我有三个模型:

class Category(models.Model):
category_name = models.CharField(max_length=128, unique=True)
category_alias = models.CharField(max_length=128, unique=True)
category_desc = models.TextField()

class Question(models.Model):
user = models.ForeignKey(User)
category = models.ForeignKey(Category)
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField(auto_now=True)
is_approved = models.BooleanField(default=0)

class Answer(models.Model):
user = models.ForeignKey(User)
question = models.ForeignKey(Question)
answer = models.TextField()
is_approved = models.BooleanField(default=0)

class Rating(models.Model):
user = models.ForeignKey(User)
answer = models.ForeignKey(Answer)
rating = models.BooleanField(default=0)

我需要一个查询,该查询将找到最喜欢的答案(具有最高评级的答案)及其问题和特定类别的评级。这意味着如果答案 2 的评分最高,那么我将获得该答案的对象以及相关问题和任何特定类别的评分。

最佳答案

class Rating(models.Model):
user = models.ForeignKey(User)
answer = models.ForeignKey(Answer)
rating = models.BooleanField(default=0, related_name='rating')


answers = Answer.objects.filter(question__category__id=category_id).annotate(
rating_sum=Count(rating__rating)).order_by('-rating_sum')

您应该使用“注释”方法来计算正分并按此字段排列答案。

关于python - 如何在 django 中编写带有过滤器和按条件排序的连接三个表的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28336893/

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