首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Flask、SQLAlchemy和WTForms更新多对多关系?

使用Flask、SQLAlchemy和WTForms更新多对多关系?
EN

Stack Overflow用户
提问于 2014-08-04 19:58:25
回答 1查看 6.5K关注 0票数 17

我想使用Flask、SQLAlchemy和WTForms为多对多关系创建一个表单来表示这些模型:

代码语言:javascript
复制
personaddress = db.Table('personaddress',
    db.Column('person', db.Integer, db.ForeignKey('person.id')),
    db.Column('address', db.Integer, db.ForeignKey('address.id'))
)

class Person(db.Model):
    __tablename__ = "person"
    id = db.Column(Integer, primary_key=True)
    name = db.Column(String, nullable=False)
    addresses = db.relationship('Address', secondary=personaddress, backref=db.backref('person', lazy='dynamic'))

class Address(db.Model):
    __tablename__ = "address"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)

需求

现在,我想创建一个包含表单的页面,以实现以下目标:

  • add/edit/delete a person
  • add/edit/delete a address
  • add/edit/delete a
    • add/edit/delete a person and a address

    (人与地址之间的关系)

重要要求:使用QuerySelectField,我可以为一个人选择现有地址。但是我想以相同的形式添加新地址。

对于主模型和子表单,我使用了model_form,使用FormField作为连接表,但我就是想不出如何更新所有内容,包括外键关系。对于显示的所有表单和子表单,该页面应具有单个提交按钮。

问题

  1. 在Flask中通常是如何实现上述要求的?
  2. 这种多对多的情况,Django可以通过其管理界面

更轻松地处理吗

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25118175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档