Support of One2One fields
This commit is contained in:
1 parent
fb26b49e44
commit
200f5fbcf0
1 file changed
+15
@@ -174,6 +174,10 @@ class Many2OneDescriptor(FieldDescriptor):
|
||||
super(Many2OneDescriptor, self).__set__(instance, value)
|
||||
|
||||
|
||||
class One2OneDescriptor(Many2OneDescriptor):
|
||||
pass
|
||||
|
||||
|
||||
class One2ManyDescriptor(FieldDescriptor):
|
||||
default = []
|
||||
|
||||
@@ -219,6 +223,10 @@ class Many2OneValueDescriptor(ValueDescriptor):
|
||||
return value and value.id or False
|
||||
|
||||
|
||||
class One2OneValueDescriptor(Many2OneValueDescriptor):
|
||||
pass
|
||||
|
||||
|
||||
class One2ManyValueDescriptor(ValueDescriptor):
|
||||
def __get__(self, instance, owner):
|
||||
value = [('add', [])]
|
||||
@@ -268,6 +276,10 @@ class Many2OneEvalDescriptor(EvalDescriptor):
|
||||
return False
|
||||
|
||||
|
||||
class One2OneEvalDescriptor(Many2OneEvalDescriptor):
|
||||
pass
|
||||
|
||||
|
||||
class One2ManyEvalDescriptor(EvalDescriptor):
|
||||
def __get__(self, instance, owner):
|
||||
return [x.id for x in getattr(instance, self.name)]
|
||||
@@ -296,18 +308,21 @@ class MetaModelFactory(object):
|
||||
'many2one': Many2OneDescriptor,
|
||||
'one2many': One2ManyDescriptor,
|
||||
'many2many': Many2ManyDescriptor,
|
||||
'one2one': One2OneDescriptor,
|
||||
}
|
||||
value_descriptors = {
|
||||
'reference': ReferenceValueDescriptor,
|
||||
'many2one': Many2OneValueDescriptor,
|
||||
'one2many': One2ManyValueDescriptor,
|
||||
'many2many': Many2ManyValueDescriptor,
|
||||
'one2one': One2OneValueDescriptor,
|
||||
}
|
||||
eval_descriptors = {
|
||||
'reference': ReferenceEvalDescriptor,
|
||||
'many2one': Many2OneEvalDescriptor,
|
||||
'one2many': One2ManyEvalDescriptor,
|
||||
'many2many': Many2ManyEvalDescriptor,
|
||||
'one2one': One2OneEvalDescriptor,
|
||||
}
|
||||
|
||||
def __init__(self, model_name, config=None):
|
||||
|
||||
Reference in new issue
Block a user