From 13218ea08be23b95622899044c3f70b43a63f229 Mon Sep 17 00:00:00 2001 From: eclipse Date: Thu, 14 Aug 2025 21:57:41 +0200 Subject: [PATCH] updated all model declarations so that they represent the database to a T --- the_works/models.py | 52 ++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/the_works/models.py b/the_works/models.py index f87945c..8e73a93 100644 --- a/the_works/models.py +++ b/the_works/models.py @@ -34,13 +34,13 @@ class Base(DeclarativeBase): return f"{type(self).__name__}({str(self.asdict())})" -# Classes for models with a single column (plus ID) which can be handled by the generic class-based view +# Classes for models with a single column (plus ID) which can be handled by the generic class-based view class Genre(Base): __tablename__ = 'Genre' ID: Mapped[int] = mapped_column(primary_key=True) - Genre: Mapped[str] = mapped_column(CheckConstraint('Genre <> ""', name='GenreNotEmptyConstraint'), unique=True) + Genre: Mapped[str] = mapped_column(CheckConstraint('Genre <> ""', name='GenreNotEmptyConstraint'), nullable=False, unique=True) texte: Mapped[List['Text_Genre']] = relationship(back_populates='genre') werke: Mapped[List['Werk_Genre']] = relationship(back_populates='genre') @@ -50,7 +50,7 @@ class Herausgeber(Base): __tablename__ = 'Herausgeber' ID: Mapped[int] = mapped_column(primary_key=True) - Name: Mapped[str] = mapped_column(CheckConstraint('Herausgeber <> ""', name='HerausgeberNotEmptyConstraint'), unique=True) + Name: Mapped[str] = mapped_column(CheckConstraint('Herausgeber <> ""', name='HerausgeberNotEmptyConstraint'), nullable=False, unique=True) werke: Mapped[List['Werk_Herausgeber']] = relationship(back_populates='herausgeber') @@ -59,7 +59,7 @@ class Pseudonym(Base): __tablename__ = 'Pseudonym' ID: Mapped[int] = mapped_column(primary_key=True) - Pseudonym: Mapped[str] = mapped_column(CheckConstraint('Pseudonym <> ""', name='PseudonymNotEmptyConstraint'), unique=True) + Pseudonym: Mapped[str] = mapped_column(CheckConstraint('Pseudonym <> ""', name='PseudonymNotEmptyConstraint'), nullable=False, unique=True) veroeffentlichung: Mapped[List['Veroeffentlichung']] = relationship(back_populates='pseudonym') @@ -68,7 +68,7 @@ class Sprache(Base): __tablename__ = 'Sprache' ID: Mapped[int] = mapped_column(primary_key=True) - Sprache: Mapped[str] = mapped_column(CheckConstraint('Sprache <> ""', name='SpracheNotEmptyConstraint'), unique=True) + Sprache: Mapped[str] = mapped_column(CheckConstraint('Sprache <> ""', name='SpracheNotEmptyConstraint'), nullable=False, unique=True) text: Mapped[List['Text']] = relationship(back_populates='sprache') @@ -77,7 +77,7 @@ class Textform(Base): __tablename__ = 'Textform' ID: Mapped[int] = mapped_column(primary_key=True) - Textform: Mapped[str] = mapped_column(CheckConstraint('Textform <> ""', name='TextformNotEmptyConstraint'), unique=True) + Textform: Mapped[str] = mapped_column(CheckConstraint('Textform <> ""', name='TextformNotEmptyConstraint'), nullable=False, unique=True) text: Mapped[List['Text']] = relationship(back_populates='textform') @@ -86,7 +86,7 @@ class Verlag(Base): __tablename__ = 'Verlag' ID: Mapped[int] = mapped_column(primary_key=True) - Verlag: Mapped[str] = mapped_column(CheckConstraint('Verlag <> ""', name='VerlagNotEmptyConstraint'), unique=True) + Verlag: Mapped[str] = mapped_column(CheckConstraint('Verlag <> ""', name='VerlagNotEmptyConstraint'), nullable=False, unique=True) reihe: Mapped[List['Reihe']] = relationship(back_populates='verlag') werk: Mapped[List['Werk']] = relationship(back_populates='verlag') @@ -96,18 +96,18 @@ class Werksform(Base): __tablename__ = 'Werksform' ID: Mapped[int] = mapped_column(primary_key=True) - Werksform: Mapped[str] = mapped_column(CheckConstraint('Werksform <> ""', name='WerksformNotEmptyConstraint'), unique=True) + Werksform: Mapped[str] = mapped_column(CheckConstraint('Werksform <> ""', name='WerksformNotEmptyConstraint'), nullable=False, unique=True) werk: Mapped[List['Werk']] = relationship(back_populates='werksform') -# Classes that have more than one column and need dedicated view functions +# Classes that have more than one column and need dedicated view functions class Reihe(Base): __tablename__ = 'Reihe' ID: Mapped[int] = mapped_column(primary_key=True) - Titel: Mapped[str] = mapped_column(CheckConstraint('Titel <> ""', name='ReihentitelNotEmptyConstraint')) + Titel: Mapped[str] = mapped_column(CheckConstraint('Titel <> ""', name='ReihentitelNotEmptyConstraint'), nullable=False) Verlag: Mapped[Optional[str]] = mapped_column(ForeignKey('Verlag.ID')) verlag: Mapped['Verlag'] = relationship(back_populates='reihe') @@ -120,14 +120,14 @@ class Titelbild(Base): __tablename__ = 'Titelbild' ID: Mapped[int] = mapped_column(primary_key=True) - Mimetype: Mapped[str] - Dateiname: Mapped[str] - Dateigroesse: Mapped[int] - Breite: Mapped[int] - Hoehe: Mapped[int] - Bild: Mapped[bytes] - Thumbnail: Mapped[bytes] - sha256: Mapped[str] = mapped_column(CheckConstraint('sha256 <> ""', name='sha256NotEmptyConstraint'), unique=True) + Mimetype: Mapped[str] = mapped_column(nullable=False) + Dateiname: Mapped[str] = mapped_column(nullable=False) + Dateigroesse: Mapped[int] = mapped_column(nullable=False) + Breite: Mapped[int] = mapped_column(nullable=False) + Hoehe: Mapped[int] = mapped_column(nullable=False) + Bild: Mapped[bytes] = mapped_column(nullable=False) + Thumbnail: Mapped[bytes] = mapped_column(nullable=False) + sha256: Mapped[str] = mapped_column(CheckConstraint('sha256 <> ""', name='sha256NotEmptyConstraint'), nullable=False, unique=True) werk: Mapped[List['Werk']] = relationship(back_populates='titelbild') @@ -143,15 +143,15 @@ class Text(Base): # regular columns ID: Mapped[int] = mapped_column(primary_key=True) - Titel: Mapped[str] = mapped_column(CheckConstraint('Titel <> ""', name='TexttitelNotEmptyConstraint')) + Titel: Mapped[str] = mapped_column(CheckConstraint('Titel <> ""', name='TexttitelNotEmptyConstraint'), nullable=False) Untertitel: Mapped[Optional[str]] # many-to-one Reihe: Mapped[Optional[int]] = mapped_column(ForeignKey('Reihe.ID')) reihe: Mapped[Optional["Reihe"]] = relationship(back_populates="text") - Sprache: Mapped[int] = mapped_column(ForeignKey('Sprache.ID')) + Sprache: Mapped[int] = mapped_column(ForeignKey('Sprache.ID'), nullable=False) sprache: Mapped['Sprache'] = relationship(back_populates='text') - Textform: Mapped[int] = mapped_column(ForeignKey('Textform.ID')) + Textform: Mapped[int] = mapped_column(ForeignKey('Textform.ID'), nullable=False) textform: Mapped['Textform'] = relationship(back_populates='text') # one-to-many @@ -167,7 +167,7 @@ class Werk(Base): # regular columns ID: Mapped[int] = mapped_column(primary_key=True) - Titel: Mapped[str] = mapped_column(CheckConstraint('Titel <> ""', name='WerkstitelNotEmptyConstraint')) + Titel: Mapped[str] = mapped_column(CheckConstraint('Titel <> ""', name='WerkstitelNotEmptyConstraint'), nullable=False) Untertitel: Mapped[Optional[str]] Reihennummer: Mapped[Optional[str]] Erscheinungsdatum: Mapped[Optional[str]] @@ -185,7 +185,7 @@ class Werk(Base): titelbild: Mapped[Optional['Titelbild']] = relationship(back_populates='werk') Verlag: Mapped[Optional[int]] = mapped_column(ForeignKey('Verlag.ID')) verlag: Mapped[Optional['Verlag']] = relationship(back_populates='werk') - Werksform: Mapped[int] = mapped_column(ForeignKey('Werksform.ID')) + Werksform: Mapped[int] = mapped_column(ForeignKey('Werksform.ID'), nullable=False) werksform: Mapped['Werksform'] = relationship(back_populates='werk') # one-to-many @@ -207,11 +207,11 @@ class Veroeffentlichung(Base): AltUntertitel: Mapped[Optional[str]] # many-to-one - Pseudonym: Mapped[int] = mapped_column(ForeignKey('Pseudonym.ID')) + Pseudonym: Mapped[int] = mapped_column(ForeignKey('Pseudonym.ID'), nullable=False) pseudonym: Mapped['Pseudonym'] = relationship(back_populates='veroeffentlichung') - Text: Mapped[int] = mapped_column(ForeignKey('Text.ID')) + Text: Mapped[int] = mapped_column(ForeignKey('Text.ID'), nullable=False) text: Mapped['Text'] = relationship(back_populates='veroeffentlichung') - Werk: Mapped[int] = mapped_column(ForeignKey('Werk.ID')) + Werk: Mapped[int] = mapped_column(ForeignKey('Werk.ID'), nullable=False) werk: Mapped['Werk'] = relationship(back_populates='veroeffentlichung')