Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
1 Odpowiedz
5315 Widoki

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 

Awatar
Odrzuć
Najlepsza odpowiedź

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)]") 
Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
3
lip 25
4374
0
maj 25
908
2
mar 24
2163
0
sty 23
1755
1
lis 22
3216