Skip to content

Commit 89198ea

Browse files
committed
Fixed nested automatic choices coerce for simple types (#50)
1 parent 18ddc80 commit 89198ea

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

flask_mongoengine/wtf/orm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ def conv_List(self, model, field, kwargs):
155155
return ModelSelectMultipleField(model=field.field.document_type, **kwargs)
156156
if field.field.choices:
157157
kwargs['multiple'] = True
158-
return self.convert(model, field.field, **kwargs)
158+
return self.convert(model, field.field, kwargs)
159159
field_args = kwargs.pop("field_args", {})
160160
unbound_field = self.convert(model, field.field, field_args)
161161
unacceptable = {

tests/test_forms.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,22 @@ class MyChoices(db.Document):
6161
form.save()
6262
self.assertEqual(MyChoices.objects.first().pill, 1)
6363

64+
def test_list_choices_coerce(self):
65+
66+
with self.app.test_request_context('/'):
67+
db = self.db
68+
69+
CHOICES = ((1, "blue"), (2, "red"))
70+
71+
class MyChoices(db.Document):
72+
pill = db.ListField(db.IntField(choices=CHOICES))
73+
74+
MyChoicesForm = model_form(MyChoices)
75+
form = MyChoicesForm(MultiDict({"pill": "1"}))
76+
self.assertTrue(form.validate())
77+
form.save()
78+
self.assertEqual(MyChoices.objects.first().pill[0], 1)
79+
6480
def test_emailfield(self):
6581

6682
with self.app.test_request_context('/'):

0 commit comments

Comments
 (0)