2016-09-20 4 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のデフォルトのフィールドコードは変更できません。他の解決策を教えてください。 –

関連する問題