2017-01-31 6 views
1

У меня есть модель, где много соединений ManyToMany. Мне нужен умный способ управления из панели администратора. При создании модели кампании мне нужно подключиться к другим моделям. Есть ли у Websauna что-то вроде Django Inline foms?Управление отношениями ManyToMany в панели администратора Websauna

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

Deform может сделать inline forms as sequences.

Однако, поскольку автоматическое создание форм из отношений ManyToMany является сложным, вам необходимо вручную построить схему Deform.

Вы можете сделать это, переопределив FormView.create_form(), который возвращает объект deform.Form с вашей пользовательской схемой с последовательностями.

Затем необходимо также переопределить Edit.save_changes() и/или Add.build_object(), которые будут читать входящие объекты (dict) и создавать или обновлять объекты в отношениях ManyToMany.

Смежные вопросы