1

我有一个模型,其中有很多 ManyToMany 连接。我需要一种从管理面板进行管理的智能方式。创建活动模型时,我需要连接到其他模型。Websauna 有类似 Django Inline 格式的东西吗?

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')
4

1 回答 1

1

Deform 可以将内联表单作为序列

但是,由于从多对多关系自动生成表单很复杂,因此您需要手动构建 Deform 模式。

您可以通过覆盖FormView.create_form()来做到这一点,该方法返回一个deform.Form带有序列的自定义模式的对象。

然后,您还需要覆盖Edit.save_changes()和/或Add.build_object(),它们将读取传入的 appstruct (dict) 并在多对多关系中创建或更新对象。

于 2017-01-31T15:58:54.917 回答