Python: fehlendes Klassenattribut __module__ bei Verwendung von type ()?

8

Ich versuche, einige Klassen dynamisch zu konstruieren, die Unterklassen von djangos models.Model sind. Mein Code sieht so aus:

%Vor%

Wenn Django versucht, das zu laden, gibt es die folgende Ausnahme:

%Vor%

Es scheint so, als ob eine Klasse, die mit type() erstellt wurde, nicht das __module__ -Member erhält, das für die mit class definierte Klasse vorhanden ist. Was ist hier los?

    
kdt 06.09.2011, 13:29
quelle

1 Antwort

13

Vielleicht Metaklassen ist die beste Wahl für Ihre Bedürfnisse als Low-Level type() ?

Aber in den meisten Fällen können Sie __name__ als Wert für __module__ like

verwenden %Vor%

Django verwendet __module__ value, um zu bestimmen, welche django-App dieses Modell besitzt. Modelle in my_app1/models.py enthalten my_app1.models und django weiß, dass Modelle aus dieser | Datei zu my_app1 application gehören.

    
seriyPS 06.09.2011, 13:43
quelle

Tags und Links