Ich habe ein Django-Projekt, das solche Modelle hat.Automatische Vererbung für Django-Modelle
class Part(models.Model):
attr1 = models.CharField(max_length=50)
attr2 = models.CharField(max_length=50)
class Document(models.Model):
part = models.ForeignKey(Part)
attr1 = models.CharField(max_length=50)
und so weiter.
Es gibt viele Modelle in einem einzigen Modul und ich brauche für jedes Modell ein separates Modell mit den gleichen Attributen plus einem oder mehreren zusätzlichen Attributen.
Wie würde ich das tun, ohne jede einzelne Klasse von Hand zu schreiben?
Bearbeiten
Ok die Frage war ein wenig unklar.
Ich möchte 2 separate Tabelle in der Datenbank für jedes Modell wie oben und eine mit einer zusätzlichen Spalte haben.
Edit 2
Ich glaube, ich habe es, wenn ich
import inspect
import sys
for name, obj in inspect.getmembers(sys.modules[__name__]):
if inspect.isclass(obj) and issubclass(obj, models.Model) and hasattr(obj, 'Meta') and inspect.isclass(obj.Meta) and not (
hasattr(obj.Meta, 'abstract') and obj.Meta.abstract):
globals()["Edit" + name] = type("Edit" + name, (obj,), {'fu': 'bar'})
am unteren Rande meines models.py, bekomme ich ein neues Modell für jedes in in dieser Datei definiert Modell.
So würde ich EditPart
und EditDocument
Klassen jeweils mit einem Attribut fu
bekommen.
Ist es in Ordnung, minimale Mühe in die Frage zu stellen und zu erwarten, dass andere die Forschung machen und für mich versuchen und mir die Antwort auf einem Goldtablett geben? –