Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
5362 Visualizzazioni

Dear all,

I added a new many2one field "reference_id" to the sale.order.line model and it worked well, but now I would want to set a domain for that field.

This is the idea:

  • When I create a new sale_order and add some order_lines, there should not be any "reference" at the dropbox for the sale_order_line field, but we should be able to create a new one (lets call it "ref004" because I created others before).

  • With that line created, I would want to add a new order line and set that ref004 to the new line.

  • If I create a new sale order, I should see the reference_id field empty again.

My model "exe_reference" fields look like this:


class exe_reference(models.Model):
    _name = 'exe.reference'
sale_order_id = fields.Many2one('sale.order')
    sale_order_line_id = fields.Many2one('sale.order.line')
    name = fields.Char(string='Reference Name')
    date = fields.Date()
    establishment_id = fields.Many2one('res.partner')
    partner_id = fields.Many2one('res.partner', string='Partner')

class reference_sale(models.Model):
    _inherit = 'sale.order.line'
    reference_id = fields.Many2one('exe.reference', string="Reference", domain=[('sale_order_id','=',???)])


If I set a 1 instead '???' I get what I want (obviously, only if I'm at the SO001). How can I get the sale_order.id?

I would appreciate any help.

Best regards 

Avatar
Abbandona
Risposta migliore

You need to put quotes around the full domain so you can use variables in the domain declaration.

reference_id = fields.Many2one('exe.reference', string="Reference", domain="[('sale_order_id','=',order_id)]") 
Avatar
Abbandona
Post correlati Risposte Visualizzazioni Attività
3
lug 25
4509
0
mag 25
965
2
mar 24
2207
0
gen 23
1796
1
nov 22
3253