Wenn ein Django-Modell abstrakt gemacht wird, wie unten, gibt es eine Möglichkeit, die Klasse zu überprüfen, um festzustellen, dass es abstrakt ist?Django - wie zu bestimmen, ob Modellklasse ist abstrakt
class MyModel(models.Model):
class Meta:
abstract = True
Ich würde erwarten, dass ich MyModel.Meta.abstract untersuchen konnte, aber nach Django docs:
Django macht eine Anpassung an die Meta-Klasse von einer abstrakten Basisklasse machen: vor der Installation Meta-Attribut, es setzt abstrakt = Falsch. Dies bedeutet, dass Kinder von abstrakten Basisklassen nicht automatisch selbst zu abstrakten Klassen werden.
Irgendwelche Ideen? Vielen Dank!
Was ist los mit dem Lesen der Quelle? Es ist immer verfügbar. –
Die Zusammenfassung von Docs bezieht sich auf abgeleitete Klasse 'Meta, nicht Basis. –
@ S.Lott - In der Tat habe ich RTFM aber RTFS gescheitert. Um fair zu sein, viele der Fragen zu S.O. könnte wahrscheinlich durch das Lesen der Quelle selbst beantwortet werden. @Dmitry - Ich bin ein wenig verwirrt durch Ihren Kommentar. Von django/db/basy.py scheint es, dass alle Attribute in der Meta-Klasse in eine neue Klasse übertragen werden, die als _meta referenziert wird. Es ist diese Klasse, die den ursprünglichen abstrakten Wert in den Meta-Klassen der Modelle enthält. Unabhängig davon beantwortete @sheats meine Frage (Danke nochmal). – Nagyman