Hinzufügen, um die "Konstruktor" von django-Modell
Möchte ich einen extra Initialisierung, wenn Instanzen einer bestimmten django-Modell erstellt werden. Ich weiß, dass überschreiben von __init__ können zu Schwierigkeiten führen. Welche anderen alternativen sollte ich in Betracht ziehen?
Update. Weitere details: Die Absicht ist, zu initialisieren, eine state-machine, die die Instanzen des Modells darstellen. Diese state-machine ist eine Bibliothek importiert, und es den inneren Zustand beibehalten wird, die durch meine django-Modell. Die Idee ist, dass, wenn das Modell geladen wird, die state-Maschine wäre automatisch initialisiert mit den Modell-Daten.
Hast du falsch interpretiert, die Frage. Es ist nicht so, dass das überschreiben
Danke, ich habe noch einmal gelesen, der andere thread. Du meinst, wenn ich die Signatur
Ich habe ein paar mehr Infos um die Frage zu klären, die Absicht.
__init__
funktioniert nicht, die OP habe es nur falsch verstanden. Du bist frei, zu überschreiben __init__
, aber die Wirksamkeit ist völlig davon abhängig, was genau Sie zu tun versuchen. Also, warum nicht Sie sagen uns, dass, so können wir tatsächlich helfen Ihnen.Danke, ich habe noch einmal gelesen, der andere thread. Du meinst, wenn ich die Signatur
(self, *args, **kwargs)
, überschreiben von __init__, kommt nicht auf django ' s Weg?Ich habe ein paar mehr Infos um die Frage zu klären, die Absicht.
InformationsquelleAutor Filipe Correia | 2012-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überschreiben
__init__
funktionieren könnte, aber es ist schlechte Idee, und es ist nicht die Django-Weg.Dem richtigen Weg, es zu tun in Django ist mit Signale.
Diejenigen, die für Sie von Interesse ist in diesem Fall
pre_init
undpost_init
.Sodass Ihr code sollte so etwas wie
Kannst du Sie auch verbinden, Signale zu Django vordefinierten Modelle.
__init__
? Es stellt keine mehrere Probleme in django als in jeder anderen situation.vartec ich weiß, es ist schon eine Weile her, aber ich stieß in Ihre Antwort, und ich bin neugierig. Warum sagen Sie, dass Signale ist die Django-Weg? Warum nicht in einem der beiden beschriebenen Wege in der Django-Dokumentation zu lösen, diese genaue situation? docs.djangoproject.com/en/1.4/ref/models/instances/... vielen Dank
Der aktualisierte link aus dem vorherigen Kommentar ist dieser: docs.djangoproject.com/en/1.9/ref/models/instances
InformationsquelleAutor vartec