gpt4 book ai didi

python - 如何在Django模型查询中添加比较模型本身两个字段的条件

转载 作者:行者123 更新时间:2023-11-28 17:46:46 25 4
gpt4 key购买 nike

如题所述,在Django中:

假设我有一个模型名称 QuestionRecord,它有两个字段:full_scoreactual_score。我要实现的SQL:

select * from QuestionRecord as QR where QR.full_score!=QR.actual_score.

也许使用原始 sql 是可以的,但我想这样实现它:

class QuestionRecord_QuerySet(models.query.QuerySet):
def incorrect(self):# Find out those whose full_score and actual_score are not equal
return self.filter(...) # **What should I write here??**

class QuestionRecord_Manager(models.Manager):
def get_query_set(self):
return QuestionRecord_QuerySet(self.model)

class QuestionRecord(models.Model):
objects = QuestionRecord_Manager()

有什么办法吗?

最佳答案

当然,这就是 "F" object 的内容是为了!

from django.db.models import F

# snip

return self.exclude(full_score = F('actual_score'))

在这里使用 QuerySet.exclude,因为您不想得到匹配的结果。

如果你真的想使用QuerySet.filter,你可以使用一个否定的"Q" object。 : self.filter(~Q(full_score = F('actual_score')))

关于python - 如何在Django模型查询中添加比较模型本身两个字段的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17040979/

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