Hello I am trying to get a one2one relationship to work. Here are my 
classes:

*class Formulario*(ModelSQL,ModelView):
    'Formulario'
    _name = 'cefiro.formulario'
    _description = __doc__

    formVivTrabajo = 
fields.One2One('cefiro.formvivtrabajo','formularioid','formvivtrabajoid','Vivienda
 
y Trabajo', required=True)

Formulario()


*class Formvivtrabtarget*(ModelSQL,ModelView):
    'Formvivtrabtarget'
    _name = 'cefiro.formvivtrabtarget.target'
    _description = __doc__

    tipoVivienda = fields.Selection([('casa','La casa'),('calle','La 
calle'),('inst',u'Institución protectora'),('car','Privado de 
libertad')],'Vive en',required=True)

Formvivtrabtarget()

*class Formviviendatrabajo*(ModelSQL,ModelView):
    'Formvivtrabajo'
    _name = 'cefiro.formvivtrabajo'
    _description = __doc__
    
    formvivtrabajoid = fields.Many2One('cefiro.formvivtrabtarget.target', 
'Formvivtrabtarget')
    formularioid = fields.Many2One('cefiro.formulario', 'Formulario')
    
    def __init__(self):

        super(Formviviendatrabajo, self).__init__()

        self._sql_constraints += [
            ('origin_unique', 'UNIQUE(formularioid)','Origin must be 
unique'),
            ('target_unique', 'UNIQUE(formvivtrabajoid)','Target must be 
unique'),
        ]

Formviviendatrabajo()

You can see that I already have formvivtrabjoid as a Formviviendatrabajo's 
field but I am getting the following error when saving it:

Traceback (most recent call last):
>   File "/trytond/protocols/jsonrpc.py", line 123, in _marshaled_dispatch
>     response['result'] = dispatch_method(method, params)
>   File "/trytond/protocols/jsonrpc.py", line 156, in _dispatch
>     res = dispatch(*args)
>   File "/trytond/protocols/dispatcher.py", line 156, in dispatch
>     res = getattr(obj, method)(*args_without_context, **kargs)
>   File "/trytond/model/modelsql.py", line 925, in write
>     self._columns[field].set(ids, self, field, values[field])
>   File "/trytond/model/fields/one2many.py", line 130, in set
>     model.create(act[1])
>   File "/trytond/model/modelsql.py", line 423, in create
>     self._validate([id_new])
>   File "/trytond/model/modelsql.py", line 2207, in _validate
>     super(ModelSQL, self)._validate(ids)
>   File "/trytond/model/modelstorage.py", line 1090, in _validate
>     if (isinstance(record[field_name], (BrowseRecordNull,
>   File "/trytond/model/browse.py", line 174, in __getitem__
>     for data in self._model.read(ids, ffields.keys()):
>   File "/trytond/model/modelsql.py", line 622, in read
>     res2 = self._columns[field].get(ids, self, field, values=res)
>   File "/trytond/model/fields/one2one.py", line 24, in get
>     res = super(One2One, self).get(ids, model, name, values=values)
>   File "/trytond/model/fields/many2many.py", line 78, in get
>     ], order=order))
>   File "/trytond/model/modelsql.py", line 1168, in search
>     order_by2, tables2, tables2_args = self._order_calc(field, otype)
>   File "/trytond/model/modelsql.py", line 2058, in _order_calc
>     (field, self._name))
> Exception: ('Error', 'Wrong field name (formvivtrabajoid) for 
> cefiro.formvivtrabajo in order!')
>

I based on the following links but didn't work as you can see:
 
[1] http://doc.tryton.org/2.0/trytond/doc/ref/models/fields.html#one2one, 
[2] 
http://hg.tryton.org/trytond/file/14a0a4d4e03b/trytond/test/test.py#l359 
[3] 
http://hg.tryton.org/trytond/file/14a0a4d4e03b/trytond/tests/test_fields.py#l2083

Thank you in advance

-- 
You received this message because you are subscribed to the Google Groups 
"tryton" group.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tryton/363f7af1-9c8c-4ec0-a3e3-7e4c734c5c7a%40googlegroups.com.

Reply via email to