Deref list custom id fix
This commit is contained in:
parent
8e50f5fa3c
commit
b0aa98edb4
@ -166,7 +166,7 @@ class DeReference(object):
|
||||
else:
|
||||
data[k] = v
|
||||
|
||||
if k in self.object_map:
|
||||
if k in self.object_map and not is_list:
|
||||
data[k] = self.object_map[k]
|
||||
elif hasattr(v, '_fields'):
|
||||
for field_name, field in v._fields.iteritems():
|
||||
|
@ -813,11 +813,10 @@ class QuerySet(object):
|
||||
have to create a new document.
|
||||
Passes any write_options onto :meth:`~mongoengine.Document.save`
|
||||
|
||||
.. versionadded:: 0.3
|
||||
|
||||
:param auto_save: if the object is to be saved automatically if not found.
|
||||
|
||||
.. versionadded:: 0.6
|
||||
.. versionadded:: 0.3
|
||||
.. versionupdated:: 0.6 - added `auto_save`
|
||||
"""
|
||||
defaults = query.get('defaults', {})
|
||||
if 'defaults' in query:
|
||||
|
@ -810,7 +810,7 @@ class FieldTest(unittest.TestCase):
|
||||
room = Room.objects.first().select_related()
|
||||
self.assertEquals(room.staffs_with_position[0]['staff'], sarah)
|
||||
self.assertEquals(room.staffs_with_position[1]['staff'], bob)
|
||||
|
||||
|
||||
def test_document_reload_no_inheritance(self):
|
||||
class Foo(Document):
|
||||
meta = {'allow_inheritance': False}
|
||||
@ -841,3 +841,25 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
self.assertEquals(type(foo.bar), Bar)
|
||||
self.assertEquals(type(foo.baz), Baz)
|
||||
|
||||
def test_list_lookup_not_checked_in_map(self):
|
||||
"""Ensure we dereference list data correctly
|
||||
"""
|
||||
class Comment(Document):
|
||||
id = IntField(primary_key=True)
|
||||
text = StringField()
|
||||
|
||||
class Message(Document):
|
||||
id = IntField(primary_key=True)
|
||||
comments = ListField(ReferenceField(Comment))
|
||||
|
||||
Comment.drop_collection()
|
||||
Message.drop_collection()
|
||||
|
||||
c1 = Comment(id=0, text='zero').save()
|
||||
c2 = Comment(id=1, text='one').save()
|
||||
Message(id=1, comments=[c1, c2]).save()
|
||||
|
||||
msg = Message.objects.get(id=1)
|
||||
self.assertEqual(0, msg.comments[0].id)
|
||||
self.assertEqual(1, msg.comments[1].id)
|
Loading…
x
Reference in New Issue
Block a user