我想要一个可选的DateField,但如果将其保留为空,我会收到"Not a valid date value"错误
我在wtforms的源代码中添加了一些日志,发现formdata.getlist(self.name)为此DateField返回[u'']
我的表格代码:
from wtforms import BooleanField, TextField, TextAreaField, PasswordField, validators, HiddenField, DateField, SelectField
from flask_wtf import Form
class EmployeeForm(Form):
id = HiddenField('id')
title = TextField('Title')
start = DateField('Start Date', format='%m/%d/%Y')
Run Code Online (Sandbox Code Playgroud) 有没有办法从python发送一个表单(css)类?例如:
class Company(Form):
companyName = TextField('Company Name', [validators.Length(min=3, max = 60)])
Run Code Online (Sandbox Code Playgroud)
这呈现了一个简单的文本字段,但我希望该文本字段具有css类.companyName,是否可以直接从python?
我知道我可以id="companyName"直接从python中放入,但不能放入类.
救命.
更新:我试过class_="companyName",它没有用,我得到了:
__init__() got an unexpected keyword argument '_class'
Run Code Online (Sandbox Code Playgroud) 有什么区别DataRequired和InputRequired在wtforms.valiadators
我的注册表单中有一些字段:
username
password
password_repeat
submit
Run Code Online (Sandbox Code Playgroud)
这些字段应该使用DataRequired还是InputRequired验证器?
我有一个Flask应用程序,我可以通过上传CSV文件填充表单数据然后读取.我想用从CSV读取的数据填充FieldList.但是,当我尝试填充数据时,它会将原始HTML输入到TextFields中,而不仅仅是我想要的值.我究竟做错了什么?
app.py
from flask import Flask, render_template, request, url_for
from flask.ext.wtf import Form
from wtforms import StringField, FieldList, FormField, SelectField
from wtforms.validators import DataRequired
from werkzeug.datastructures import MultiDict
app = Flask(__name__)
app.config['SECRET_KEY']='asdfjlkghdsf'
# normally student data is read in from a file uploaded, but for this demo we use dummy data
student_info=[("123","Bob Jones"),("234","Peter Johnson"),("345","Carly Everett"),
("456","Josephine Edgewood"),("567","Pat White"),("678","Jesse Black")]
class FileUploadForm(Form):
pass
class StudentForm(Form):
student_id = StringField('Student ID', validators = [DataRequired()])
student_name = StringField('Student Name', validators = [DataRequired()])
class AddClassForm(Form): …Run Code Online (Sandbox Code Playgroud) 嗨,我一直试图在模板中使用类似的东西来填充textareafield.
{{form.content(value="please type content")}}
Run Code Online (Sandbox Code Playgroud)
当字段是文本字段时,这主要是因为html接受值,<input type="text">
但同样不适用于textarea ...有人可以帮我这个吗?
你知道一种使HTML输入表单字段使用WTForms的'readonly'属性的方法吗?
我的应用程序使用Flask,Flask-SQLAlchemy,Flask-WTF和Jinja2的组合.
在目前的版本中,我有一个设置表.该表只有一个记录,包含一个字段.最初该表包含零记录.
我想要实现的是:
这是我的代码:
models.py
class Provider(db.Model):
id = db.Column(db.Integer, primary_key = True)
rssfeed = db.Column(db.String(120), unique = True)
def __init__(self, rssfeed):
self.rssfeed = rssfeed
def __repr__(self):
return '<NZBMatrix feed url %r>' % self.rssfeed
Run Code Online (Sandbox Code Playgroud)
forms.py
class SettingsForm(Form):
rssfeed = TextField('rssfed', validators= [Required()])
Run Code Online (Sandbox Code Playgroud)
views.py
@app.route('/settings', methods=["GET","POST"])
def settings():
""" show settings """
provider = Provider.query.get(1)
form = SettingsForm(obj=provider)
print provider
if request.method == "POST" and form.validate():
if Provider.query.get(1) is None:
provider = Provider(rssfeed=form.rssfeed.data)
form.populate_obj(provider)
db.session.add(provider)
db.session.commit()
flash("Settings added") …Run Code Online (Sandbox Code Playgroud) 我试图根据本文档在WTForms中生成具有动态字段的表单http://wtforms.simplecodes.com/docs/1.0.2/specific_problems.html#dynamic-form-composition
我有这个子表单类,允许用户从列表中选择要购买的项目:
class Item(Form):
itmid = SelectField('Item ID')
qty = IntegerField('Quantity')
class F(Form):
pass
Run Code Online (Sandbox Code Playgroud)
将有多个类别的购物项目,因此我想根据用户将选择的类别生成动态选择字段:
fld = FieldList(FormField(Item))
fld.append_entry()
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
AttributeError: 'UnboundField' object has no attribute 'append_entry'
Run Code Online (Sandbox Code Playgroud)
我做错了什么,或者在WTForms中没有办法做到这一点?
当我们尝试使用 python 3.6.8 版本执行时,出现以下模块错误
from wtforms.compat import string_types, text_type
ModuleNotFoundError: No module named 'wtforms.compat'
Run Code Online (Sandbox Code Playgroud)
当我尝试安装或升级 wtforms 时仍然显示相同的错误
任何人都可以建议吗
我正在创建一个产品编辑表单,我需要预先填充以前的数据表单.
我正在做以下事情:
Product(form):
product = TextField('name')
category = SelectField('category', choice=[(1,'one'),(2,'two')])
Run Code Online (Sandbox Code Playgroud)
在视图中:
form.product.data = 'A product name from the database'
form.category.data = 'a category name' #This does not work
Run Code Online (Sandbox Code Playgroud)
问题出在SelectField上.
我知道我可以在SelectField上设置一个'默认'值.但是,这发生在表单定义类中,并且我还没有来自sqlalchemy的查询对象.
那么,有没有办法在运行时在selectfield上添加默认值?