Aktywne Wpisy

AdamIspireGoral +163
To jest mój punkt startowy.
Zero formy, zero wymówek.
Od dziś zaczynam drogę od 0 do fit.
Zapisuję to tutaj, żeby już nie było odwrotu.
Co tydzień aktualizacja.
Ostatni
Zero formy, zero wymówek.
Od dziś zaczynam drogę od 0 do fit.
Zapisuję to tutaj, żeby już nie było odwrotu.
Co tydzień aktualizacja.
Ostatni
źródło: 1000003849
Pobierz
KladzSie +28
Stoja jeszcze gdzies dziwki przy drodze? Lata nie widzialem..





Chciałbym, aby klasa będąca modelem ORM ze sqlalchemy (powiedzmy
User), dziedziczyła po klasie nie będącej takim modelem, powiedzmyInnaklasaz jakiegoś innego modułu. Zamysł jest taki, że metody zInnaklasaoperują na danych które wyciągam z SQL używając klasyUser. To pozwala na używanie klasyInnaklasaniezależnie od bazy danych.Problem jest taki, że sqlalchemy ma jakiś własny schemat inicjalizacji obiektów. Przykład:
Przypadek 1: tworzę instancję używając konstruktora
u = User(x, y, z). Wszystko jest ok, ponieważ - w metodzie__init__wywołujęInnaklasa.__init__(self, x, y, z).Przypadek 2: tworzę instancję z użyciem kwerendy
u = session.query(User).filter_by(x=x).first(). W tym przypadku__init__się nie wywołuje i chociaż powstały obiekt zawiera metody dziedziczone po klasieInnaklasa, to nie zawiera atrybutów zdefiniowanych wInnaklasa.__init__, a nie zdefiniowanych wUser. Dodam, że są to atrybuty "prywatne", nie muszę i nie chcę ich zmieniać. Cała "sensowna" reszta jest definiowana wUser.__init__()#python #sqlalchemy #orm
__init__. Trzeba dodać metodę z dekoratorem@sqlalchemy.orm.reconstructor, a w niej np. wywołaćself.__init__()na jakichś własnych argumentach.