2017-01-31 3 views
1

많은 ManyToMany 연결이있는 모델이 있습니다. 관리자 패널에서 관리하려면 현명한 방법이 필요합니다. 캠페인 모델을 만들 때 다른 모델에 연결해야합니다. Websauna는 Django Inline foms와 같은 것을 가지고 있습니까?Websauna Admin Panel에서 ManyToMany 관계를 관리하십시오.

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

변형은 inline forms as sequences입니다.

그러나 ManyToMany 관계에서 자동으로 양식을 생성하는 것이 복잡하기 때문에 수동으로 변형 스키마를 구성해야합니다.

시퀀스를 사용하여 사용자 지정 스키마로 deform.Form 개체를 반환하는 FormView.create_form()을 재정 의하여이 작업을 수행 할 수 있습니다.

그런 다음 들어오는 appstruct (dict)를 읽고 ManyToMany 관계에서 개체를 만들거나 업데이트하는 Edit.save_changes() 및/또는 Add.build_object()을 재정의해야합니다.