我有一个模型,其中有 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)
最佳答案
Student.objects.filter(~Q(old_school=F('new_school')))
Q
有助于构建不等于
条件,而F
有助于引用另一个模型字段。
关于python - 如何排除 Django 模型中的等列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21155788/