Управление отношениями ManyToMany в админ-панели Websauna
У меня есть модель, где много подключений ManyToMany. Мне нужен умный способ управления из панели администратора. При создании модели кампании мне нужно подключиться к другим моделям. Есть ли у Websauna что-то вроде Django Inline foms?
class Campaign(Base, BaseMixin):
name = Column(String())
created_at = Column(UTCDateTime, default=now, nullable=False)
updated_at = sa.Column(UTCDateTime, onupdate=now)
owner_id = Column(ForeignKey('users.id'))
workers = relationship('Worker',
secondary=CampaignWorker.__table__,
back_populates='campaign')
recipients = relationship('Recipient',
secondary=CampaignRecipient.__table__,
back_populates='campaign')
accounts = relationship('Account',
secondary=CampaignAccount.__table__,
back_populates='campaign')
messages = relationship('Message',
back_populates='campaign')
message_deliveries = relationship('MessageDelivery',
secondary=CampaignMessageDelivery.__table__,
back_populates='campaign')
1 ответ
Деформация может делать встроенные формы в виде последовательностей.
Однако, поскольку автоматическое создание форм из отношений ManyToMany является сложным, вам необходимо вручную создать схему Deform.
Вы можете сделать это, переопределив FormView.create_form(), который возвращает deform.Form
Объект с вашей пользовательской схемой с последовательностями.
Затем вам также необходимо переопределить Edit.save_changes() и / или Add.build_object(), которые будут читать входящие appstruct (dict) и создавать или обновлять объекты в связях ManyToMany.