Commit c0a71e26 authored by Timothée Jeannin's avatar Timothée Jeannin

Make the Select2Field coerce enum values to their name in case of a SQLAlchemy Enum column.

Fixes #1315.
parent 874d2b76
import warnings
from enum import Enum
from wtforms import fields, validators
from sqlalchemy import Boolean, Column
......@@ -9,7 +10,7 @@ from flask_admin.model.form import (converts, ModelConverterBase,
from flask_admin.model.fields import AjaxSelectField, AjaxSelectMultipleField
from flask_admin.model.helpers import prettify_name
from flask_admin._backwards import get_property
from flask_admin._compat import iteritems
from flask_admin._compat import iteritems, text_type
from .validators import Unique
from .fields import (QuerySelectField, QuerySelectMultipleField,
......@@ -281,6 +282,7 @@ class AdminModelConverter(ModelConverterBase):
accepted_values.append(None)
field_args['validators'].append(validators.AnyOf(accepted_values))
field_args['coerce'] = lambda v: v.name if isinstance(v, Enum) else text_type(v)
return form.Select2Field(**field_args)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment