fix-#620: saving document doesn't create new fields in existing collection
This commit is contained in:
parent
e008919978
commit
1e6a3163af
@ -651,6 +651,8 @@ class BaseDocument(object):
|
|||||||
default = default()
|
default = default()
|
||||||
if isinstance(default, BaseDocument):
|
if isinstance(default, BaseDocument):
|
||||||
changed_fields.append(field_name)
|
changed_fields.append(field_name)
|
||||||
|
elif not only_fields or field_name in only_fields:
|
||||||
|
changed_fields.append(field_name)
|
||||||
|
|
||||||
if errors_dict:
|
if errors_dict:
|
||||||
errors = "\n".join(["%s - %s" % (k, v)
|
errors = "\n".join(["%s - %s" % (k, v)
|
||||||
|
@ -2633,5 +2633,15 @@ class InstanceTest(unittest.TestCase):
|
|||||||
p3 = Person.objects().only('created_on')[0]
|
p3 = Person.objects().only('created_on')[0]
|
||||||
self.assertEquals(orig_created_on, p3.created_on)
|
self.assertEquals(orig_created_on, p3.created_on)
|
||||||
|
|
||||||
|
class Person(Document):
|
||||||
|
created_on = DateTimeField(default=lambda: datetime.utcnow())
|
||||||
|
name = StringField()
|
||||||
|
height = IntField(default=189)
|
||||||
|
|
||||||
|
p4 = Person.objects()[0]
|
||||||
|
p4.save()
|
||||||
|
self.assertEquals(p4.height, 189)
|
||||||
|
self.assertEquals(Person.objects(height=189).count(), 1)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user