SQLAlchemy __init__ wird nicht ausgeführt

8

Ich habe den folgenden Code:

%Vor%

Und ich erhalte den folgenden Fehler:

%Vor%

Es scheint mir, dass meine __init__ -Methode nicht ausgeführt wird, da ich keine print-Anweisungen in meinem Protokoll sehen kann.

Kann jemand erklären, warum mein __init__ nicht ausgeführt wird und was kann ich dafür tun?

    
disappearedng 22.04.2013, 21:01
quelle

1 Antwort

25

Lesen Sie die SQLAlchemy-Dokumentation zur Rekonstruktion :

  

Das SQLAlchemy-ORM ruft __init__ nicht auf, wenn Objekte neu erstellt werden   Datenbankzeilen. Der Prozess des ORM ähnelt dem Python   das Essiggurkenmodul der Standardbibliothek, wobei die niedrige Stufe __new__ aufgerufen wird   Methode und dann ruhig Attribute direkt auf der Instanz wiederherstellen   anstatt __init__ aufzurufen.

     

Wenn Sie zuvor einige Einstellungen für datenbankgeladene Instanzen vornehmen müssen   Sie können sie verwenden, Sie können den @reconstructor-Decorator zum Markieren verwenden   eine Methode als ORM-Gegenstück zu __init__ . SQLAlchemy wird dies aufrufen   Methode mit keinen Argumenten, jedes Mal, wenn es eins von lädt oder rekonstruiert   Ihre Instanzen. Dies ist nützlich, um Übergangseigenschaften neu zu erstellen   die normalerweise in Ihrem __init__ :

zugewiesen sind
%Vor%
  

Wenn obj = MyMappedClass () ausgeführt wird, ruft Python __init__ auf   Methode als normal und das Datenargument ist erforderlich. Wenn Instanzen sind   während einer Query-Operation wie in Abfrage (MyMappedClass) .one () geladen,    init_on_load wird aufgerufen.

    
Mark Hildreth 22.04.2013, 21:38
quelle

Tags und Links