我有这两个简单的模型,A 和 B:
from django.db import models
class A(models.Model):
name = models.CharField(max_length=10)
class B(A):
age = models.IntegerField()
现在,我如何查询所有没有 B 实例的 A 实例?
我发现的唯一方法需要在每个子类上都有一个明确的唯一字段,该字段不为 NULL,以便我可以执行 A.objects.filter(b__this_is_a_b=None),例如,获取不是 B 实例的实例。我正在寻找一种方法来做到这一点,而无需添加这样的明确愚蠢的标志。
我也不想查询所有对象,然后在 Python 中过滤它们。我想让数据库为我做这件事,基本上就像SELECT * FROM A WHERE A.id in (SELECT id from B)