2016-11-03 257 views
1

我試圖改變一些屬性字段的默認值,例如'cost_method','product_type'和'product'模塊的'估價',但我只能更改非屬性字段。如何更改Odoo(舊API)中屬性字段的默認值?

我嘗試過的: - 我創建了一個新模塊並繼承了'product.template'模型並僅覆蓋了'_default'字典,但它不起作用。

  • 我創建了新的字段具有相同的名稱,但另一種類型(選擇)不屬性,但這項工作都沒有。

的代碼:

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

_columns = {

'cost_method':fields.selection([( '平均', '平均價格'),( '標準',「標準價格'),('真實','實際價格')]) ,'type':fields.selection(['product','Stockable Product'),('consu','Consumable'),服務','服務')],'產品類型',required = True,help =「消費品是指你不管理庫存的產品,服務是由公司或個人提供的非物質產品。 ,'comp any_id ':fields.many2one(' res.company」, '公司',需要= FALSE) }僅_inherit="product.template"

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

回答

1

使用。在你的情況下,你不需要_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 - 場從未有過的consu值。在我的情況下,我可以通過打開菜單Settings -> Technical Settings -> Actions -> User-defined Defaults來解決問題。我刪除了名稱爲type和modelname爲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