diff --git a/the_works/models.py b/the_works/models.py index ce163ee..3a6e0fa 100644 --- a/the_works/models.py +++ b/the_works/models.py @@ -2,16 +2,15 @@ from the_works.database import db from sqlalchemy.orm import relationship from sqlalchemy.ext.associationproxy import association_proxy -# override/add __repr__() and _asdict() methods from sqlalchemy.orm.decl_api.Model for easier handling of table rows -def __repr__(self): - return str({col.key: self.__getattribute__(col.key) for col in self.__table__.c}) - +# add method to sqlalchemy.orm.decl_api.Model def _asdict(self): - return {col.key: self.__getattribute__(col.key) for col in self.__table__.c} - -db.Model.__repr__ = __repr__ + return {col.key: "" if type(col.type) == db.types.BLOB else self.__getattribute__(col.key) for col in self.__table__.c} db.Model._asdict = _asdict +# override repr() method from sqlalchemy.orm.decl_api.Model +def __repr__(self): + return str(self._asdict()) +db.Model.__repr__ = __repr__ class Text(db.Model): __table__ = db.Model.metadata.tables['Text'] @@ -29,6 +28,7 @@ class Werk(db.Model): werksform = relationship("Werksform", back_populates="werk") veroeffentlichung = relationship("Veroeffentlichung", back_populates="werk") werk_genre = relationship("Werk_Genre", back_populates="werk", cascade="save-update, merge, delete, delete-orphan") + titelbild = relationship("Titelbild", back_populates="werk") genres = association_proxy("werk_genre", "Genre") werk_herausgeber = relationship("Werk_Herausgeber", back_populates="werk", cascade="save-update, merge, delete, delete-orphan") herausgeber = association_proxy("werk_herausgeber", "Herausgeber") @@ -75,6 +75,10 @@ class Herausgeber(db.Model): __table__ = db.Model.metadata.tables['Herausgeber'] werk_herausgeber = relationship("Werk_Herausgeber", back_populates="herausgeber") +class Titelbild(db.Model): + __table__ = db.Model.metadata.tables['Titelbild'] + werk = relationship("Werk", back_populates="titelbild") + class Text_Genre(db.Model): __table__ = db.Model.metadata.tables['Text_Genre'] text = relationship("Text", back_populates="text_genre")