File tree Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -107,7 +107,7 @@ def process_formdata(self, valuelist):
107107 self .data = None
108108
109109 def _is_selected (self , item ):
110- return item in self .data
110+ return item in self .data if self . data else False
111111
112112
113113class ModelSelectField (QuerySetSelectField ):
Original file line number Diff line number Diff line change @@ -264,6 +264,34 @@ class DogOwner(db.Document):
264264 self .assertTrue (choices [0 ].checked )
265265 self .assertTrue (choices [1 ].checked )
266266
267+ def test_modelselectfield_multiple_initalvalue_None (self ):
268+ with self .app .test_request_context ('/' ):
269+ db = self .db
270+
271+ class Dog (db .Document ):
272+ name = db .StringField ()
273+
274+ class DogOwner (db .Document ):
275+ dogs = db .ListField (db .ReferenceField (Dog ))
276+
277+ DogOwnerForm = model_form (DogOwner )
278+
279+ dogs = [Dog (name = "fido" ), Dog (name = "rex" )]
280+ for dog in dogs :
281+ dog .save ()
282+
283+ form = DogOwnerForm (dogs = None )
284+ self .assertTrue (form .validate ())
285+
286+ self .assertEqual (wtforms .widgets .Select , type (form .dogs .widget ))
287+ self .assertEqual (True , form .dogs .widget .multiple )
288+
289+ # Validate if both dogs are selected
290+ choices = list (form .dogs )
291+ self .assertEqual (len (choices ), 2 )
292+ self .assertFalse (choices [0 ].checked )
293+ self .assertFalse (choices [1 ].checked )
294+
267295 def test_passwordfield (self ):
268296 with self .app .test_request_context ('/' ):
269297 db = self .db
You can’t perform that action at this time.
0 commit comments