diff --git a/mongoengine/base/document.py b/mongoengine/base/document.py index 43158133..42a8bb4b 100644 --- a/mongoengine/base/document.py +++ b/mongoengine/base/document.py @@ -1080,9 +1080,11 @@ class BaseDocument(object): """Return the display value for a choice field""" value = getattr(self, field.name) if field.choices and isinstance(field.choices[0], (list, tuple)): + if value is None: + return None sep = getattr(field, 'display_sep', u' ') - values = value if field.__name__ == 'ListField' else [value] + values = value if field.__class__.__name__ == 'ListField' else [value] return sep.join([ dict(field.choices).get(val, val) - for val in values]) + for val in values or []]) return value diff --git a/tests/fields/fields.py b/tests/fields/fields.py index b6628ab0..336e116c 100644 --- a/tests/fields/fields.py +++ b/tests/fields/fields.py @@ -957,10 +957,10 @@ class FieldTest(MongoDBTestCase): post.validate() post.access_list = 'a,b' - self.assertRaises(ValidationError, post.validate()) + self.assertRaises(ValidationError, post.validate) post.access_list = ['c', 'd'] - self.assertRaises(ValidationError, post.validate()) + self.assertRaises(ValidationError, post.validate) post.access_list = ['a', 'b'] post.validate()