..
Set Default Value For One2many Field
문제
odoo에서 공정 이동표를 작성할 때 필요한 4M 코드가 공정 이동표 별로 변경되지 않고, 고정되어 있어 One2many로 연결된 4M 코드를 미리 지정해두고 수량만 변경할 수 있도록 하고 싶었다.
(예시)
해결
odoo에서 그런 기능을 제공할까 싶었지만, 다행히 제공하고 있었다.
설정 -> 기술 -> 자원 -> 근무 시간을 보면 내가 원하는 기능인 One2many 필드에 default 값을 주는 것이 가능하다는 것을 알 수 있다.
@api.model
def default_get(self, fields_list):
res = super(classname, self).default_get(fields_list)
vals = [(0, 0, {'field_1': value_1, 'field_2': value_2}),
(0, 0, {'field_1': value_1, 'field_2': value_2})]
res.update({'your_o2m_field': vals})
return res
data.xml에 미리 정의해둔 4M 코드를 불러오고, 수량은 0으로 초기화 해준다.
@api.model
def default_get(self, fields_list):
res = super(LotsheetRouting3, self).default_get(fields_list)
vals = [(0, 0, {'four_m_id': self.env.ref('mrp_ssk.four_m_MT01').id, 'four_m_qty': 0}),
(0, 0, {'four_m_id': self.env.ref('mrp_ssk.four_m_MA01').id, 'four_m_qty': 0})]
res.update({'four_m_ids': vals})
return res
참고
https://www.odoo.com/forum/help-1/set-default-value-for-one-of-the-one2many-field-odoo-11-149093