Python 使用Flask、SQLAlchemy和WTForms更新多对多关系?
Python 使用Flask、SQLAlchemy和WTForms更新多对多关系?,python,flask,sqlalchemy,flask-wtforms,Python,Flask,Sqlalchemy,Flask Wtforms,我想使用Flask、SQLAlchemy和WTForms为多对多关系创建一个表示这些模型的表单:
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):
我想使用Flask、SQLAlchemy和WTForms为多对多关系创建一个表示这些模型的表单:
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)
要求
现在,我想创建一个包含表单的页面,以实现以下功能:
- 添加/编辑/删除某人
- 添加/编辑/删除地址
- 添加/编辑/删除个人和地址之间的关系
重要要求:使用QuerySelectField,我可以为一个人选择现有地址。但是我想以相同的形式添加新地址
我已经使用连接表的FormField
对主要模型和子表单使用了model\u form
,但我就是不知道如何更新所有内容,包括外键关系。对于显示的所有表单和子表单,页面应具有一个提交按钮
问题
上述要求通常是如何在Flask中实现的
Django是否可以通过其管理界面更轻松地处理这种多对多场景
我之前也遇到过类似的情况。我试图通过使用model_表单来解决这个问题,但它并不能完全解决动态添加新条目的问题,而且在处理关系时,我很难使用它
在WTForms中使用QuerySelectField只会帮助您使用与现有地址对应的id、值对填充