gpt4 book ai didi

python - 如何排除 Django 模型中的等列?

转载 作者:太空宇宙 更新时间:2023-11-04 10:40:06 25 4
gpt4 key购买 nike

我有一个模型,其中有 2 个外部文件指向同一个模型:

class Student(models.Model):
old_school = model.ForeignField(school)
new_school = model.ForeignField(school)

我想找到 old_school != new_school 的学生。我试过这些:

Student.objects.all().exlude(old_school = new_school)
Student.objects.all().exlude(self.old_school = self.new_school)

但它们都不起作用。似乎模型管理器不能引用 new_school。有什么方法可以做这样的查询吗?或者我必须在 python 代码中手动检查不相等:

if student.old_school != student.new_school:
s_list.append(student)

最佳答案

您可以使用 Q 来实现此目的和 F :

Student.objects.filter(~Q(old_school=F('new_school')))

Q 有助于构建不等于 条件,而F 有助于引用另一个模型字段。

关于python - 如何排除 Django 模型中的等列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21155788/

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