bug fix for RefferenceField.to_mongo when dbref=False

This commit is contained in:
yak 2012-11-13 13:02:07 +01:00
parent c31488add9
commit 787fc1cd8b
2 changed files with 10 additions and 1 deletions

View File

@ -777,7 +777,7 @@ class ReferenceField(BaseField):
def to_mongo(self, document):
if isinstance(document, DBRef):
if not self.dbref:
return DBRef.id
return document.id
return document
elif not self.dbref and isinstance(document, basestring):
return document

View File

@ -1104,6 +1104,15 @@ class FieldTest(unittest.TestCase):
p = Person.objects.get(name="Ross")
self.assertEqual(p.parent, p1)
def test_dbref_to_mongo(self):
class Person(Document):
name = StringField()
parent = ReferenceField('self', dbref=False)
p1 = Person._from_son({'name':"Yakxxx", 'parent': "50a234ea469ac1eda42d347d"})
mongoed = p1.to_mongo()
self.assertIsInstance(mongoed['parent'], ObjectId)
def test_objectid_reference_fields(self):