草庐IT

python - wtforms 在验证表单后引发验证错误

我有一个收集信用卡信息的注册表。工作流程如下:用户通过stripe输入注册数据和卡数据。表单已通过注册数据验证。如果表格有效,则处理付款。如果付款成功,则一切正常,用户已注册并继续前进。如果付款失败,我希望能够在表单的隐藏字段上引发验证错误。这可能吗?这是一个表单提交代码:defregister():form=RegistrationForm()ifform.validate_on_submit():user=User([...])db.session.add(user)#Chargeamount=10000customer=stripe.Customer.create(email=j

python - 从 WTForms 字段获取上传的文件

在Flask文档中,文件上传示例使用然后request.files['file']获取文件。我正在使用WTFormsFileField。使用WTForms而不是自己编写输入html时如何获取上传的文件? 最佳答案 request.files是一个字典,其中的键是文件字段的名称。您可以使用my_form.my_field.name获取WTForms字段的名称。因此,您可以使用request.files[my_form.my_field.name]访问从该字段上传的数据。除了使用WTFormsFileField,您还可以使用Flask-

python - WTForms "too many values to unpack"与 SelectField

我正在使用WTForms并尝试显示SelectField,但出现以下错误:>>>form.status()Traceback(mostrecentcalllast):File"",line1,inFile"C:\Python26\Lib\site-packages\wtforms\fields.py",line136,in__call__returnself.widget(self,**kwargs)File"C:\Python26\Lib\site-packages\wtforms\widgets.py",line237,in__call__forval,label,selected

python - WTForms ... html,自动对焦?

是否可以在WTForms中使用一些仅在HTML5中使用的新属性?例如,假设您要创建一个具有placeholder="foo"、必需和自动对焦属性的TextField。这将如何在WTForms中完成?在html中它看起来像这样:请注意placeholder="foo"在WTForms中很容易完成。autofocus和required,因为它们没有值(value),所以......好吧,据我所知,WTForms不支持。WTForms可以支持吗? 最佳答案 在昨天发布的WTForms1.0中,HTML5紧凑语法现在是默认语法。现在你可以(

python - flask -wtforms : Validation always false

首先,我是python和Flask的新手,如果我的问题很愚蠢,我很抱歉。我搜索了它,但从未找到答案(我猜这应该是一个“简单”的答案)。我想在我的网站上添加一个联系页面,我找到了thistutorial所以我跟着它。在表单验证之前一切正常。我只使用Required并且form.validate()总是返回false。如果我不修改我的代码,并且我删除了表单类中的每个Required,它工作正常,form.validate()返回true。我真的不明白为什么,我读了很多应该使用validate_on_submit()的内容,但是如果我使用它会出现错误:*'ClassName'objectha

python - Flask + WTForms + SelectMultipleField 和动态选择

我正在尝试使用WTForms.SelectMultipleField来管理表单上的一些动态选择,但我遇到了一些困难,因为它在提交验证之前在客户端进行了修改。基本上我有两个SelectMultipleField选项:classMyForm(Form):assigned=SelectMultipleField('Assigned',choices=[])available=SelectMultipleField('Available',choices=[('1','1'),('2','2')])我正在使用Flask来呈现Jinja2模板,如下所示:@app.view("/myview",m

python - WTForms 创建可变数量的字段

我如何动态创建一些具有不同问题但相同答案的表单字段?fromwtformsimportForm,RadioFieldfromwtforms.validatorsimportRequiredclassVariableForm(Form):def__init__(formdata=None,obj=None,prefix='',**kwargs):super(VariableForm,self).__init__(formdata,obj,prefix,**kwargs)questions=kwargs['questions']//Howtotodynamicallycreatethree

python - 预填充 BooleanField 已选中 (WTForms)

我这辈子都不知道如何使用WTForms预填充BooleanField。我有一个名为“事件”的领域。默认不勾选,也不是必须的。所以我把它设置成...classQuestionForm(Form):question=TextField('Question',[validators.Required()])slug=TextField('Slug',[validators.Required()])active=BooleanField('Active')然后我有一个编辑页面,我在其中显示我要编辑的“问题”的表单。{{form.question.label}}{{form.question(v

python - 自动剥离()WTForms中的所有值?

有没有办法在不向每个字段添加过滤器的情况下从WTForms中的所有值中去除周围的空白?目前我正在将filters=[strip_whitespace]和下面显示的函数传递给我的字段,但必须为每个字段重复此操作非常难看。defstrip_whitespace(s):ifisinstance(s,basestring):s=s.strip()returns需要对Form进行子类化的解决方案会很好,因为我已经在我的应用程序中这样做了。 最佳答案 您可以使用bind_field在WTForms2.x中执行此操作classMeta上的原语。c

python - 如何将包含连字符的属性添加到 WTForms 字段

调用WTForms字段对象会生成呈现的字段,并且任何参数都被视为属性,例如。form.field(attribute='value')会返回类似的东西我如何添加HTML5自定义数据属性,例如包含连字符的data-provide,使它们在python中无法作为单个关键字参数进行解析? 最佳答案 用相应的键值对创建一个字典,并使用**传递给字段调用:attrs={'data-provide':"foo"}form.field(**attrs)编辑:看起来@NiklasB的评论应该是答案的一部分:对于那些使用flask的人与flask-W