sqlalchemy_utils:
class Comment(Base):
object_id: Mapped[int] = mapped_column(Integer)
object_type: Mapped[str] = mapped_column(Unicode(255))
object: Mapped['Base'] = generic_relationship(object_type, object_id)
И хочу на моделях, к которым могут присваиваться комменты, установить relationship:
class Announcement(Base):
comments: Mapped[List['Comment']] = relationship(lazy='dynamic',
primaryjoin='Announcement.id == foreign(Comment.object_id)',
viewonly=True)
Есть вариант как-то уставноить, чтобы в comments попадали только записти, у которых object_type == 'Announcement'?
1. выкнуить flask_sqlalchemy и взять просто алхимию 2. сильно подумать а что но ли ты хочешь generic_relationship
Опечатался, использую sqlalchemy_utils. Ну в любом случае лоучше generic relationship, потому что есть и другие сущности, для которых нужны комменты. А плодить одинаковые таблицы - ну такое
sqlalchemy_utils тоже выкинуть, оно кривое в половине случае, во пторой поливине не нужен
Ну, так добавить еще одно услвоие в primaryjoin
Он у меня чисто для generic relationship
я проебал, что это делается через "and_()", вот и не работало спасибо, помогло
Обсуждают сегодня