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):
107
107
self .data = None
108
108
109
109
def _is_selected (self , item ):
110
- return item in self .data
110
+ return item in self .data if self . data else False
111
111
112
112
113
113
class ModelSelectField (QuerySetSelectField ):
Original file line number Diff line number Diff line change @@ -264,6 +264,34 @@ class DogOwner(db.Document):
264
264
self .assertTrue (choices [0 ].checked )
265
265
self .assertTrue (choices [1 ].checked )
266
266
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
+
267
295
def test_passwordfield (self ):
268
296
with self .app .test_request_context ('/' ):
269
297
db = self .db
You can’t perform that action at this time.
0 commit comments