flask - flask-admin ModelView定制create_form

标签 flask flask-wtforms flask-admin

我在flask-admin中创建自定义UserViewCreateForm(使用wtforms),如下所示:-

from app.vendors.models import Vendor

class UserViewCreateForm(form.Form):
    username = fields.TextField('Username')
    first_name = fields.TextField('First Name')
    last_name = fields.TextField('Last Name')
    email = fields.TextField('Email')
    contact_number = fields.TextField('Contact Number')
    password = fields.PasswordField('Password')
    is_admin = fields.BooleanField('Is Admin')
    is_active = fields.BooleanField('Is Active')
    is_verified = fields.BooleanField('Is Verified')
    vendor = fields.SelectField('Vendor', coerce=int)


class UserView(ModelView):
    form_overrides = dict(title=SelectField)
    form_args = dict(
        # Pass the choices to the `SelectField`
        title=dict(
            choices=TITLE_TYPE
        ))

    def __init__(self, session, **kwargs):
        super(UserView, self).__init__(User, session, **kwargs)

    def is_accessible(self):
        return login.current_user.is_authenticated()

    def create_form(self):
        form = UserViewCreateForm()
        form.vendor.choices = [(0, '')] + [(v.id, v.name) for v in Vendor.query.all()]
        return form


供应商选择字段给我一个Not a valid choice验证错误。

我做错了什么?

最佳答案

可能是因为您别无选择?

CA_STATES = [
    ('', 'Province'),
    ('AB', 'Alberta'),
    ('BC', 'British Columbia'),
    ('MB', 'Manitoba'),
    ('NB', 'New Brunswick'),
    ('NL', 'Newfoundland and Labrador'),
    ('NS', 'Nova Scotia'),
    ('ON', 'Ontario'),
    ('PE', 'Prince Edward Island'),
    ('QC', 'Quebec'),
    ('SK', 'Saskatchewan'),
    ('NT', 'Northwest Territories'),
    ('NU', 'Nunavut'),
    ('YT', 'Yukon'),
]

state_ca = SelectField('Province', choices=CA_STATES)

关于flask - flask-admin ModelView定制create_form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23259492/

相关文章:

python - Flask 和 AngularJs

python - 如何将python Flask中的变量传递给mysqldb?

python-2.7 - 测试期间无法禁用WTF CSRF保护

python - json.dumps 与 flask.jsonify

session - 在flask中设置Cookie重定向到外部URL

python - 创建 ModelView 时如何解决 Flask-admin 扩展中的此错误?

python - 需要修改Flask admin中的编辑 View

Flask Admin 一对一关系和编辑表单

python - Flask-WTF - 无法测试表单提交

python - 使用 jinja2 以 Flask wtf 形式预填充 Bootstrap 日期选择器日期字段格式