parent
d00859ecfd
commit
083f00be84
@ -157,9 +157,11 @@ class BaseField(object):
|
|||||||
if isinstance(value, (list, tuple)) and not isinstance(value, BaseList):
|
if isinstance(value, (list, tuple)) and not isinstance(value, BaseList):
|
||||||
observer = DataObserver(instance, self.name)
|
observer = DataObserver(instance, self.name)
|
||||||
value = BaseList(value, observer)
|
value = BaseList(value, observer)
|
||||||
|
instance._data[self.name] = value
|
||||||
elif isinstance(value, dict) and not isinstance(value, BaseDict):
|
elif isinstance(value, dict) and not isinstance(value, BaseDict):
|
||||||
observer = DataObserver(instance, self.name)
|
observer = DataObserver(instance, self.name)
|
||||||
value = BaseDict(value, observer)
|
value = BaseDict(value, observer)
|
||||||
|
instance._data[self.name] = value
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def __set__(self, instance, value):
|
def __set__(self, instance, value):
|
||||||
@ -749,7 +751,6 @@ class BaseDocument(object):
|
|||||||
self._data[name] = value
|
self._data[name] = value
|
||||||
if hasattr(self, '_changed_fields'):
|
if hasattr(self, '_changed_fields'):
|
||||||
self._mark_as_changed(name)
|
self._mark_as_changed(name)
|
||||||
|
|
||||||
super(BaseDocument, self).__setattr__(name, value)
|
super(BaseDocument, self).__setattr__(name, value)
|
||||||
|
|
||||||
def __expand_dynamic_values(self, name, value):
|
def __expand_dynamic_values(self, name, value):
|
||||||
|
@ -516,6 +516,21 @@ class FieldTest(unittest.TestCase):
|
|||||||
self.assertEquals(BlogPost.objects.filter(info__100__test__exact='test').count(), 0)
|
self.assertEquals(BlogPost.objects.filter(info__100__test__exact='test').count(), 0)
|
||||||
BlogPost.drop_collection()
|
BlogPost.drop_collection()
|
||||||
|
|
||||||
|
def test_list_field_passed_in_value(self):
|
||||||
|
class Foo(Document):
|
||||||
|
bars = ListField(ReferenceField("Bar"))
|
||||||
|
|
||||||
|
class Bar(Document):
|
||||||
|
text = StringField()
|
||||||
|
|
||||||
|
bar = Bar(text="hi")
|
||||||
|
bar.save()
|
||||||
|
|
||||||
|
foo = Foo(bars=[])
|
||||||
|
foo.bars.append(bar)
|
||||||
|
self.assertEquals(repr(foo.bars), '[<Bar: Bar object>]')
|
||||||
|
|
||||||
|
|
||||||
def test_list_field_strict(self):
|
def test_list_field_strict(self):
|
||||||
"""Ensure that list field handles validation if provided a strict field type."""
|
"""Ensure that list field handles validation if provided a strict field type."""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user