标签: wtforms

如何使用Flask-WTF实现不需要的DateField

我想要一个可选的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)

flask wtforms flask-wtforms

20
推荐指数
2
解决办法
1万
查看次数

Wtforms,动态地向表单添加类

有没有办法从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)

css python flask wtforms

19
推荐指数
3
解决办法
2万
查看次数

Flask WTForms:DataRequired和InputRequired之间的区别

有什么区别DataRequiredInputRequiredwtforms.valiadators

我的注册表单中有一些字段:

username
password 
password_repeat 
submit
Run Code Online (Sandbox Code Playgroud)

这些字段应该使用DataRequired还是InputRequired验证器?

python flask wtforms flask-wtforms

19
推荐指数
1
解决办法
6595
查看次数

填充WTForms FormField FieldList,数据结果以字段形式显示HTML

我有一个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)

python fieldlist flask wtforms flask-wtforms

19
推荐指数
2
解决办法
8071
查看次数

WTForms-如何预填充textarea字段?

嗨,我一直试图在模板中使用类似的东西来填充textareafield.

{{form.content(value="please type content")}}
Run Code Online (Sandbox Code Playgroud)

当字段是文本字段时,这主要是因为html接受值,<input type="text"> 但同样不适用于textarea ...有人可以帮我这个吗?

python flask wtforms

18
推荐指数
6
解决办法
2万
查看次数

18
推荐指数
2
解决办法
2万
查看次数

Flask-SQLAlchemy:如何有条件地插入或更新行

我的应用程序使用Flask,Flask-SQLAlchemy,Flask-WTF和Jinja2的组合.

在目前的版本中,我有一个设置表.该表只有一个记录,包含一个字段.最初该表包含零记录.

我想要实现的是:

  • 假设db中没有条目,则显示准备用户输入的空表单
  • 鉴于存在条目,显示条目,和
  • 如果用户更改了值,则更新db中的rec.

这是我的代码:

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)

python flask wtforms flask-sqlalchemy flask-wtforms

18
推荐指数
2
解决办法
3万
查看次数

如何在WTForms中生成动态字段

我试图根据本文档在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 flask wtforms

18
推荐指数
3
解决办法
2万
查看次数

没有名为 wtforms.compat 的模块

当我们尝试使用 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 时仍然显示相同的错误

任何人都可以建议吗

python wtforms

18
推荐指数
1
解决办法
1万
查看次数

使用wtforms和flask在selectfield中设置默认值

我正在创建一个产品编辑表单,我需要预先填充以前的数据表单.

我正在做以下事情:

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上添加默认值?

python flask wtforms

17
推荐指数
2
解决办法
2万
查看次数