Cannot navigate objects in domain definition

Asked by Damián Soriano

Suppose I have the following definition

class partner(osv.osv):
    _name="partner"
partner()

class address(osv.osv):
    _name="address"
    _columns = {
        'partner_id': fields.many2one('partner', 'Partner'),
    }
address()

class carrier(osv.osv):
    _name="carrier"
    _columns = {
        'partner_id': fields.many2one('partner', 'Partner'),
    }
carrier()

class picking(osv.osv):
    _name="picking"
    _columns = {
        'carrier_id': fields.many2one('carrier', 'Carrier'),
        'carrier_address_id': fields.many2one('address', 'Carrier Address', domain="[('partner_id','=',carrier_id.partner_id)]"),
    }
picking()

So the idea is that a picking, that has a reference to carrier, can contain an address but only of this carrier. When trying to pick carrier_address_id I receive the following error:

AttributeError: 'int' object has no attribute 'partner_id'

It seems that when defining domains, the objects are not navegable, so in the domain definition, carrier_id is not an object carrier but an integer. Is there any way of solving this?

Damián

Question information

Language:
English Edit question
Status:
Answered
For:
OpenERP Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Serpent Consulting Services (serpent-consulting-services) said :
#1

Damian,

Try using this domain from XML definition (view).

If this still does not help, add a one2many field 'carrier_ids' in partner model. And then you can use this domain on carrier_address_id:
[('partner_id.carrier_ids','in',[carrier_id])]

if this still does not help, add a fields.related as partner_id in picking and that will do with:
[('partner_id','=',partner_id)]

Hope this helps.

Thanks.

Can you help with this problem?

Provide an answer of your own, or ask Damián Soriano for more information if necessary.

To post a message you must log in.