2016-09-20 10 views
0

odo에서 인용문의 송장 작성 필드에 기본값 'on delivery order'에서 'on demand'을 설정하려고합니다. 그러나 요구에 따라 기본값으로 설정되지 않습니다. 누구나 '주문형'에서 송장 생성의 기본값을 설정하는 방법을 알려줄 수 있습니까?odoo에서 견적의 송장 작성 필드에서 '주문시'에서 '주문시'로 기본값을 설정하는 방법은 무엇입니까?

코드 :

'order_policy': fields.selection([ 
         ('manual', 'On Demand'), 
         ('picking', 'On Delivery Order'), 
         ('prepaid', 'Before Delivery'), 
        ], 
        'Create Invoice', 
        required=True, 
        readonly=True, 
        states={ 
         'draft': [('readonly', False)], 
         'sent': [('readonly', False)] 
        }, 
       ), 

결과

_defaults = { 
     'order_policy': 'manual', 
} 

답변

1

을 기본 속성을 사용할 수 있습니다.

1). @KHELILI Hamza는 그 필드를 다시 정의하고 기본값을 설정해야한다고 제안했기 때문입니다.

2). default_get 메소드를 대체해야합니다.

솔루션 :

def default_get(self, cr, uid, fields, context=None): 
    res = super(class_name, self).default_get(cr, uid, fields, context=context) 
    res.update({'order_policy': 'manual'}) 
    return res 

조건부 기본 값을 설정 한 후 쉽게 그 코드에서 관리 할 수 ​​있습니다 원하는 경우.

+0

정말 고맙습니다. 지금 저를 위해 일합니다 ... –

1

당신은 당신은 두 가지 방법으로 그것을 할 수있는 분야에서

'order_policy': fields.selection([ 
        ('manual', 'On Demand'), 
        ('picking', 'On Delivery Order'), 
        ('prepaid', 'Before Delivery'), 
       ], 
       'Create Invoice', 
       default='manual', 
       required=True, 
       readonly=True, 
       states={ 
        'draft': [('readonly', False)], 
        'sent': [('readonly', False)] 
       }, 
      ), 
+0

odoo 기본 ​​필드 코드는 변경할 수 없으므로 다른 해결책을 알려주십시오. –