我在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/