2016-11-03 10 views
1

'cost_method'、 'product_type'、 'product'モジュールの 'valuation'などのいくつかのプロパティフィールドのデフォルト値を変更しようとしていますが、プロパティ以外のフィールドのみを変更できます。Odoo(旧API)のプロパティフィールドのデフォルト値を変更するにはどうすればよいですか?

私が試したこと: - 新しいモジュールを作成し、 'product.template'モデルを継承し、 '_default'ディクショナリのみをオーバーライドしましたが、動作しませんでした。

  • 同じ名前で別のタイプ(選択)のプロパティを持たない新しいフィールドを作成しましたが、どちらもこの作業を行いませんでした。

コード:

_name = "product.template" 
_inherit = "product.template" 

_COLUMNS = {

'cost_method':fields.selection([( '平均'、 '平均価格')、( '標準'、「標準( 'product'、 'Stockable Product')、( 'consu'、 'C​​onsumable')、( '' '' '' '' '' '' '' '' '' ' help = "消耗品は在庫を管理しない製品であり、サービスは企業や個人が提供する非物質的な製品です。") 、 'comp any_id ':fields.many2one(' res.company」、 '会社'、= Falseの必要) }

_defaults = { 
    'company_id': False 
    ,'type' : 'product' 
    , 'cost_method': 'average' 
    , 'barcode':'555' 
} 

答えて

1

のみを使用し_inherit="product.template"。あなたの場合、_nameプロパティは必要ありません。

pyを追加しましたか?ファイルを__init__.pyに送信しますか?

__openerp__.pyに正しい依存関係を設定しましたか?あなたのケースでは "製品"ですか?

希望はあなたを助けます。お知らせ下さい。

編集: 問題を再現できます。

# -*- coding: utf-8 -*- 
from openerp.osv import osv, fields 

class product_template(osv.osv): 
    _name = "product.template" 
    _inherit = "product.template" 

    _columns = { 
     'cost_method': fields.selection([('average', 'Average Price'),('standard', 'Standard Price'),('real', 'Real Price')]), 
     'type': fields.selection([('product', 'Stockable Product'),('consu', 'Consumable'),('service','Service')],'Product Type', required=True, help="Consumable are product where you don't manage stock, a service is a non-material product provided by a company or an individual.") , 
     'company_id': fields.many2one('res.company', 'Company', required=False) 
    } 

    _defaults = { 
     'company_id': False, 
     'type' : 'consu', 
     'cost_method': 'average', 
     'barcode':'555' 
    } 

をテストするための私のコードはここtype -fieldはconsu値がありませんでした。私の場合は、メニューSettings -> Technical Settings -> Actions -> User-defined Defaultsを開いて問題を解決できました。名前がtype、モデル名がproduct.templateのすべてのエントリを削除しました。

ここで新しい製品を作成すると、デフォルトのタイプはconsuになります。 cost_method -fieldと同じ動作です。

+0

私はこれをすべて行いました。私が前に言ったように、私のコードはプロパティフィールドを除いて正常に動作します。また、プロパティのフィールドでも、その型を 'Char'に変更すると動作します。しかし、タイプを「Selection」に変更すると、Odooはプロパティフィールドであると考え続け、 'ir_property'テーブルから値を取得しようとします。そして、それらの値を 'ir_property'テーブルから削除すると、Odooは空白値を返します。問題は今です:古いフィールドを削除するには?どのように私のデフォルトを取るようにOdooを説得し、 'ir_property'からそれらをフェッチしないのですか? – Ehab

+0

私の変更を見ましたか? – Nope

+0

'type'は使用しましたが、 'cost_method'は使用しませんでした。とても混乱するような! – Ehab

関連する問題