Elixir Event-Handler
-
09-09-2019 - |
Frage
Ich mag die @after_insert Dekorateur von Elixir verwenden, aber ich kann die Session nicht zugreifen innerhalb des Modells. Da ich auf false gesetzt Autocommit haben, kann ich keine Änderungen im Ereignishandler begehen. Gibt es eine Best Practice, wie er damit umgehen?
Der Code I Modell zu bauen verwendet werden, um die Datenbankverbindung usw. sind meist die Dokumentationen entnommen.
Die gewünschte Methode:
class Artefact(Entity):
[...]
@after_insert
def make_signature(self):
self.signature = '%s-%s' % (self.artefact_type.title.upper()[:3], self.id)
Die ganze Session Initialisierung erfolgt in der init Py im selben Verzeichnis.
Als ich dann rufen:
Session.update(self)
Session.commit()
Ich erhalte eine Fehlermeldung, dass Session nicht definiert ist. Jede Idee?
Lösung
Haben Sie Session importiert?
from packagename import Session
an der Spitze Ihrer Modelldatei sollte es tun. Paket ist der Verzeichnisname.