Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
4 Trả lời
11685 Lượt xem

Hello everyone, I have customized a module that include a many2one field. Now, I would like to set the default value for that field with the codition is: [[u'bom_ids', u'!=', False]]. i have tried below code but it did not work probebly

width_id = field.Many2one('sale.order.line.width', default ='_get_width_default')
def _get_width_default(self, cr, uid, context=None):
     res = self.pool.get('product.template').search(cr, uid, [(u'bom_ids', u'!=', False)], context=context)
     return res and res[0] or False
default = {
'width_id' : _get_width_default,
}
Could you guy please help me to point what is the problem and how to sovle the problem and finnally get my purpose. Thank for watching
Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

You are using the old api way to specify default values for fields. Put it like this:

_defaults = {
'width_id' : _get_width_default,
}


Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi,

In your _get_width function your querying the product.template model which doesn't match with your field's comodel 'sale.order.line.width'. Also you'r using field not fields:

 

you can try the below code:

@api.model
def _get_width_default(self):
     res = self.env['sale.order.line.width'].search([('bom_ids', '!=', [])], limit=1)
     return res and res.id or False

width_id = fields.Many2one('sale.order.line.width', default=_get_width_default)


Hope this could helps


Ảnh đại diện
Huỷ bỏ
Tác giả

thanks for replying, i will try your code first and send the feedback when the result come out.

Tác giả

Hellp, Elmubarrak, i dont know why the system seem does not change any thing, the result is actually the same when i set default=1, not only for your code but also any other codes that have been customized:( do you have any Idea?

Bài viết liên quan Trả lời Lượt xem Hoạt động
4
thg 7 23
2207
1
thg 2 25
10354
4
thg 12 19
7167
2
thg 7 17
3688
0
thg 3 15
3988