【发布时间】:2020-12-07 20:58:37
【问题描述】:
最近我决定在 Flask Web 应用程序中创建表单创建表单。搜索表单创建后,在烧瓶 wtf 表单中找到 Formfield、FieldList 类,我可以使用这些类创建表单。但它没有提供我想要的。
首先-我将创建一个表单创建表单,它将帮助我在管理界面上创建表单和字段。
第二-我希望能够添加字段,而不是相同类型的字段,所有不同的类型,例如(booleanField、StringField、IntegerField、DateTimeField 等),因为在表单中可能有不同类型的特定原因的字段。
第三-我想在我想在我的视图中使用时检索此表单
在数据库模型方面;
class Form(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.StringField)
fields = db.relationship('FormFields', backref='forms', lazy=True)
class FormFields(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.StringField)
field_type = db.Column(db.StringField)
form_id = db.Column(db.Integer, db.ForeignKey('forms.id'), nullable=False)
StrinField、BooleanField、TextField 等的其他表应该连接到这个字段模型,当我在这个创建的表单上保存数据时,这些数据应该保存在正确的表中
我搜索这个的原因,因为我不想硬编码代码中的表单和字段,当我需要新的表单或字段时我不想更新代码本身,它应该动态更新数据库。
我想从管理页面使用基于 sqlalchemy 的表单创建。这将有助于随时创建新表单并将字段与表单相关联。而且在互联网上我仍然没有找到这些为 Flask 创建样式的表单,几乎所有这些都为相同类型的字段创建动态
有什么想法吗?
【问题讨论】:
-
欢迎来到 Stack Overflow!您所指的模式称为 EAV,或 [Entity-Attribute-Value]()。在这里很难给出量身定制的建议,因为 WTForms 和 SQLAlchemy 的组合几乎没有现有的解决方案。但是,对于 Django,您可以使用 eav-django 来获得灵感。
-
@NickShebanov 感谢您的回复,您已将我重定向到正确的地址。 EAV 是我需要实现的。再次感谢!
标签: flask flask-sqlalchemy flask-wtforms wtforms