- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 WTForms 中设置 FieldForm 的默认值时遇到问题。
models.py
class RepairCategory(db.Model):
name = ...
class Repair(db.Model):
price = ..
category_id [FK] = ...
product_id [FK]
class Product(db.Model):
name = ...
description = ...
color = ...
ProductBase 仅包含与产品数据库模型匹配的属性。
forms.py
class NewRepair(Form):
#this is okay - it get's populated
repair_category = QuerySelectField("Repair category",
query_factory=get_categories)
price = DecimalField()
class ProductBase(Form):
name = StringField("Name ", validators=[DataRequired(), Length(1, 64)])
color = StringField("Color ", validators=[DataRequired(), Length(1, 64)])
description = TextAreaField("Description")
active = BooleanField()
class Product(Form):
base_product = FormField(ProductBase)
add_repairs = FormField(NewRepair)
submit = SubmitField('Submit')
add_repairs 包含一个表单,我想在 View 中使用它来创建修复。理想情况下,我想在 View 中传递 obj=product ,以便自动填充默认值。我也想在 base_product 表单上使用 form.populate_obj() 。
以下是我在 View 中创建产品表单的方法:
def make_product_form(form=None, product=None, **kwargs):
form = form()
form.base_product.obj = product
return form
然后,在处理 POST 时,我想做:
def product(id):
product = Product.query.get_or_404(id)
form = make_product_form(form=Product,product=product)
if form.validate_on_submit():
product_form = form.base_product
product_form.populate_obj(product)
但是,产品表单中的 base_form 不会填充现有对象的默认值。
关于如何实现这一目标有什么建议吗?谢谢:)
最佳答案
使用表单process
方法用对象的属性值填充表单字段。
使用表单 populate_obj
方法用表单字段中的值填充对象的属性。
注意:对象属性的名称必须与表单字段的名称匹配。
流程
示例:
>>> class MyObj(object):
... name = "object's name"
>>> from wtforms import Form, StringField
>>> class MyForm(Form):
... name = StringField("Form's name")
>>> my_obj = MyObj()
>>> my_obj.name
"object's name"
>>> my_form = MyForm()
>>> print my_form.name.data
None
>>> my_form.process(obj=my_obj)
>>> my_form.name.data
"object's name"
populate_obj
示例:
>>> my_form.name.data = "Form's name"
>>> my_form.name.data
"Form's name"
>>> my_obj.name
"object's name"
>>> my_form.populate_obj(my_obj)
>>> my_obj.name
"Form's name"
关于python - WTForm FormField 填充值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35749962/
我正在尝试迭代 Formfield 中的 FormField,它们都是 FieldList 的一部分。 在我的 views.py 中,我调用 mainForm,模板通过 FormField subFo
我在 WTForms 中设置 FieldForm 的默认值时遇到问题。 models.py class RepairCategory(db.Model): name = ... class R
我正在使用 WTForms-JSON和处理嵌套表单。我想让内部表单可选,但如果存在内部表单,我希望它的字段是必需的。我遇到的问题是 FormField不接受验证器。 (虽然我使用的是 WTForms-
这个问题有一个 Stackblitz:stackblitz.com/edit/angular-material-starter-template-8ojscv . 我已经实现了 custom Angu
我正在尝试添加字段和注释,但是当我尝试设置值时,出现此错误object.must.be.indirect.to.work.with.this.wrapper 。似乎无论设置哪个字段或在何处设置,都会发
当我使用 WTForms-JSON 时,嵌套表单 (FormFields) 没有填充数据。我无法发现我的错误,请参见下面的示例。 from flask import Flask, request, j
我有一个表格 wtform , 我想添加一个新表格 JobItemForm到我的表格JobForm使用 append_entry . JobItemForm有selectField名为 company
我们有以下表单,我们正在尝试为每个组创建 GroupRoleForms 列表。 class FullNameMixIn(): full_name = TextField( 'F
我正在自定义 NewForm.aspx 页面,并以文本框的形式创建了一些新的 SharePoint:FormFields。我希望根据具体情况自定义这些框的高度,但我无法弄清楚。 我研究过 Displa
我正在尝试弄清楚如何遍历文档并提取所有表单域并将它们插入到新的文本文件中。我正在研究它,试图找到我将需要的功能的示例,但我没有提供很多信息。也许我没有正确搜索。这是我到目前为止所写的内容。 using
我在 FieldList 中的 FormField 中有一个自定义字段:locations class LocationForm(Form): id = HiddenField('id')
我正在使用 Flask 构建网站我在其中使用 WTForms .在 Form 中,我现在想使用 FormFields 的 FieldList,如下所示: class LocationForm(Form
我正在尝试使用 WTF 字段、FormField、FieldList 创建一个 ListItem 表单: forms.py class WarehouseTicketItemForm(Form):
在 Symfony 项目中,我有一个表单 EventSubscriber 作用于多个表单。 它旨在禁用已填充的每个字段。 在订阅者中,当我使用: $childOptions = $child->get
iText 7 表单字段中的默认行距似乎是 2 或 1.5,但我真的很想删除行距。通常,我通过调用 setMultipliedLeading(..) 来设置行间距。在 Paragraph对象,但都不是
我在路由中使用它从表单获取数据时遇到问题 forms.py class Calculator(Form): amount = IntegerField('Amount') weight
我有一个类似下面的表格: class ConsentFormTpl(forms.Form): title = forms.CharField() message = forms.Ch
我是 Flutter 的新手,我在创建自定义表单域方面遇到了一些困难。问题是我的自定义 FormField 中的验证器和 onSaved 方法都没有被调用。我真的不知道为什么当我触发 formKey.
我有一个 Flask 应用程序,我可以通过上传一个 CSV 文件来填充表单数据,然后读取该文件。我想用从 CSV 读取的数据填充一个 FieldList。但是,当我尝试填充数据时,它会将原始 HTML
我在 Word 2013 中有一个模板文档,其中用户填写了大量旧文本表单域。在文档的末尾,我包含了一个按钮,可将答案编译为没有格式的字符串,然后将其复制到剪贴板。 它可以工作,但是当读取每个 Form
我是一名优秀的程序员,十分优秀!