diff --git a/mongoengine/document.py b/mongoengine/document.py index 114778eb..e09503c8 100644 --- a/mongoengine/document.py +++ b/mongoengine/document.py @@ -293,7 +293,7 @@ class Document(BaseDocument): raise NotUniqueError(message % unicode(err)) raise OperationError(message % unicode(err)) id_field = self._meta['id_field'] - if id_field not in self._meta.get('shard_key', []): + if created or id_field not in self._meta.get('shard_key', []): self[id_field] = self._fields[id_field].to_python(object_id) self._clear_changed_fields() diff --git a/tests/document/instance.py b/tests/document/instance.py index 07db85a0..14cc0074 100644 --- a/tests/document/instance.py +++ b/tests/document/instance.py @@ -2281,6 +2281,8 @@ class InstanceTest(unittest.TestCase): log.machine = "Localhost" log.save() + self.assertIsNotNone(log.id) + log.log = "Saving" log.save() @@ -2304,6 +2306,8 @@ class InstanceTest(unittest.TestCase): log.machine = "Localhost" log.save() + self.assertIsNotNone(log.id) + log.log = "Saving" log.save()