Ich habe diese beiden einfachen Modelle, A und B:
from django.db import models
class A(models.Model):
name = models.CharField(max_length=10)
class B(A):
age = models.IntegerField()
Wie kann ich nun nach allen Instanzen von A suchen, die keine Instanz von B haben?
Die einzige Möglichkeit, die ich gefunden habe, erfordert ein explizit eindeutiges Feld für jede Unterklasse, das NICHT NULL ist, so dass ich zum Beispiel A.objects.filter(b__this_is_a_b=None) verwenden kann, um Instanzen zu erhalten, die nicht auch B-Instanzen sind. Ich suche nach einer Möglichkeit, dies zu tun, ohne ein explizites dummes Flag wie dieses hinzuzufügen.
Ich möchte auch nicht alle Objekte abfragen und sie dann in Python filtern. Ich möchte die DB dazu bringen, dies für mich zu tun, was im Grunde etwas ist wie SELECT * FROM A WHERE A.id in (SELECT id from B)