From 06064decd2cf0da0f3c2d44852ad606dd666a6a4 Mon Sep 17 00:00:00 2001 From: Rik Date: Tue, 3 Sep 2013 11:25:45 +0200 Subject: [PATCH] check for dynamic document, exclude id pk and _cls --- mongoengine/base/document.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mongoengine/base/document.py b/mongoengine/base/document.py index 2def35f4..ae9bdc30 100644 --- a/mongoengine/base/document.py +++ b/mongoengine/base/document.py @@ -63,12 +63,13 @@ class BaseDocument(object): # Check if there are undefined fields supplied, if so raise an # Exception. - for var in values.keys(): - if var not in self._fields.keys(): - msg = ( - "The field '{}' does not exist on the document '{}'" - ).format(var, self._class_name) - raise FieldDoesNotExist(msg) + if not self._dynamic: + for var in values.keys(): + if var not in self._fields.keys() + ['id', 'pk', '_cls']: + msg = ( + "The field '{}' does not exist on the document '{}'" + ).format(var, self._class_name) + raise FieldDoesNotExist(msg) if self.STRICT and not self._dynamic: self._data = StrictDict.create(allowed_keys=self._fields_ordered)()