parent
d00859ecfd
commit
083f00be84
@ -157,9 +157,11 @@ class BaseField(object):
|
||||
if isinstance(value, (list, tuple)) and not isinstance(value, BaseList):
|
||||
observer = DataObserver(instance, self.name)
|
||||
value = BaseList(value, observer)
|
||||
instance._data[self.name] = value
|
||||
elif isinstance(value, dict) and not isinstance(value, BaseDict):
|
||||
observer = DataObserver(instance, self.name)
|
||||
value = BaseDict(value, observer)
|
||||
instance._data[self.name] = value
|
||||
return value
|
||||
|
||||
def __set__(self, instance, value):
|
||||
@ -749,7 +751,6 @@ class BaseDocument(object):
|
||||
self._data[name] = value
|
||||
if hasattr(self, '_changed_fields'):
|
||||
self._mark_as_changed(name)
|
||||
|
||||
super(BaseDocument, self).__setattr__(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)
|
||||
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):
|
||||
"""Ensure that list field handles validation if provided a strict field type."""
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user