Closed antmanler closed 10 years ago
class Order(Document): __collection__ = "Order" history = ListField(JsonField(), db_field="History")
when create new document, left every field default
Order.objects.create()
then will raise following exception
/usr/local/lib/python2.7/dist-packages/motorengine/queryset.pyc in create(self, callback, alias, **kwargs) 69 ''' 70 document = self.__klass__(**kwargs) ---> 71 self.save(document=document, callback=callback, alias=alias) 72 73 def handle_save(self, document, callback): /usr/local/lib/python2.7/dist-packages/motorengine/queryset.pyc in save(self, document, callback, alias) 99 100 def save(self, document, callback, alias=None): --> 101 if self.validate_document(document): 102 self.ensure_index(callback=self.indexes_saved_before_save(document, callback, alias)) 103 /usr/local/lib/python2.7/dist-packages/motorengine/queryset.pyc in validate_document(self, document) 121 )) 122 --> 123 return document.validate() 124 125 def handle_bulk_insert(self, documents, callback): /usr/local/lib/python2.7/dist-packages/motorengine/document.pyc in validate(self) 73 74 def validate(self): ---> 75 return self.validate_fields() 76 77 def validate_fields(self): /usr/local/lib/python2.7/dist-packages/motorengine/document.pyc in validate_fields(self) 82 if field.required and field.is_empty(value): 83 raise InvalidDocumentError("Field '%s' is required." % name) ---> 84 if not field.validate(value): 85 raise InvalidDocumentError("Field '%s' must be valid." % name) 86 /usr/local/lib/python2.7/dist-packages/motorengine/fields/list_field.pyc in validate(self, value) 33 34 def validate(self, value): ---> 35 for item in value: 36 if not self._base_field.validate(item): 37 return False TypeError: 'NoneType' object is not iterable
I think the bug is mainly caused by the miss use between db_field and field name defined in class
when create new document, left every field default
then will raise following exception