From 1367be7e9b8656d0054319ac01e2b777344ddcea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 12 Jan 2014 19:51:20 +0100 Subject: [PATCH] Force value of parent Many2One, Reference fields review2601002 --- proteus/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/proteus/__init__.py b/proteus/__init__.py index 24f80b1f1c..465f309b3c 100644 --- a/proteus/__init__.py +++ b/proteus/__init__.py @@ -143,6 +143,8 @@ class NumericDescriptor(FieldDescriptor): class ReferenceDescriptor(FieldDescriptor): def __get__(self, instance, owner): value = super(ReferenceDescriptor, self).__get__(instance, owner) + if instance._parent_name == self.name: + value = instance._parent if isinstance(value, basestring): model_name, id = value.split(',', 1) if model_name: @@ -196,6 +198,8 @@ class Many2OneDescriptor(FieldDescriptor): def __get__(self, instance, owner): relation = Model.get(self.definition['relation'], instance._config) value = super(Many2OneDescriptor, self).__get__(instance, owner) + if instance._parent_name == self.name: + value = instance._parent if isinstance(value, (int, long)) and value is not False: value = relation(value) elif not value: