2

UserViewCreateForm次のように、flask-admin で (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検証エラーが表示されます。

私は間違って何をしていますか?

4

2 に答える 2

1

選択肢がないからだろうか。

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)
于 2015-04-17T02:05:46.680 に答える