跳至內容
選單
此問題已被標幟
1 回覆
5359 瀏覽次數

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 

頭像
捨棄
最佳答案

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)]") 
頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
3
7月 25
4505
0
5月 25
965
2
3月 24
2205
0
1月 23
1793
1
11月 22
3252