python - Flask-WTF 实例化嵌套表单
问题描述
我有类似这样的嵌套表格:
class PhoneForm(FlaskForm):
number = StringField('Phone Number')
valid_since = None
class AdressForm(FlaskForm):
phone_number = FormField(PhoneForm)
city = SelectForm('City')
name = StringField('Name')
我现在已经摆弄了几个小时,但我找不到一种方法来根据我的需要设置表格。我试过覆盖构造函数并使用静态方法
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.name.data = 'Kevin123'
self.phone_number = PhoneForm()
@staticmethod
def create_form():
form = AdressForm()
form.name.data = 'Kevin'
form.phone_number = PhoneNumber.create_form() # calls the creator method of the other form
return form
我的实际应用程序比这大得多,所以我需要一种方法来自己创建表单(为选择字段设置数据或选项),然后将它们添加到嵌套表单中。
从我读到的将数据传递到 Flask-WTF 中的表单的唯一方法是
form = AdressForm(phone_number='123456')
:没有其他方法真正起作用或使表单“不可提交”(即提交后数据不会发生变化。
有没有办法在 Flask-WTF 中做到这一点,或者我必须用常规的 WTforms 尝试它。
谢谢 :)
解决方案
如果我了解您的情况,我认为您需要删除 init 内容。这是您的处理程序的一些代码(与表单交互的 Python 方法):
@app.route('/adress', methods=['GET', 'POST'])
def data():
form = forms.AdressForm()
form.phone_number.number.data = '888.888.8888'
form.phone_number.valid_since.data = '1984'
这会让你开始吗?
推荐阅读
- ruby-on-rails - 单击提交按钮后没有任何反应(Ruby on Rails)
- c - 打印 UTF-16 字符串
- mysql - 如何正确格式化我的 UPDATE 语句?获取非唯一表/别名错误
- kubernetes - Kubernetes:为自定义资源创建事件
- gravity-forms-plugin - GravityForms GFAPI::get_entries 中的 ANY/ALL (AND/OR) 组合?
- c# - 如何在方法中实例化类 T
- recursion - Thinkscript:递归计数器
- python - Flask:如何使用 AJAX 将值从 for 循环传递到 html?
- r - 在ggplot2中的条之间绘制百分比线
- java - Android GridLayout - 屏幕的一半