2017-01-18 7 views
0

私はfleet.vehicle.log.servicesモデルは、プログラムでカスタムモジュールにデフォルトのデータを追加 - Odoo v9のコミュニティ

これは、カスタムモジュールであるを継承するカスタムモジュールを、持っています。

私がしようとしているのは、デフォルトのデータを2つのフィールドに追加して、自分自身を説明させてください。

モデルは、これらの必須フィールドがあります。

vehicle_id 
cost_id 
cost_type 

を私は継承されてきた/これらのものを追加しました:

x_location_src_id 
x_location_dest_id 

これらは私が欲しいものstock場所、あるにデフォルトの株式の場所を追加することですこのモデルは、場所だけでなく、必須フィールドです。

これまでのところ、私は私のdata/location_data.xmlファイルには、次のように試してみた:

<record id="location_default" model="fleet.vehicle.log.services"> 
    <field name="vehicle_id">1</field> 
    <field name="cost_id">2</field> 
    <field name="cost_type">fuel</field> 
    <field name="x_location_src_id">ReparacionUnidades</field> 
    <field name="x_location_dest_id">ReparacionUnidades</field> 
</record> 

しかし、私が言ってきたように、私が最初に必要としない、ので、それは、私のために動作しません。 3つのフィールド、ちょうど最後の2つのフィールド。

これは、QWeb/XMlによるデフォルトデータを追加する唯一の方法であるため、これを克服する方法があると思います。attributesまたは多分プログラムでPythonを使用します。

あなたは他の方法でそれを行う方法の手掛かりを持っていますか?

私が言ったように、私はこれらの他のフィールドを追加する必要があるという事実を迂回したいと思います。

アイデア?

おそらくstock.locationsにいくつかの論理または属性はfleet.vehicle.log.servicesモデルに直接ですか?

+1

を割り当てる静的メソッドを割り当てるプログラム的な手段を。 'fleet.vehicle.log.services'の新しいレコードを作成するときに、2つの新しいフィールドがデフォルト値を持つように、あなたは方法を尋ねますか?あるいは、すでにたくさんの 'fleet.vehicle.log.services'レコードを持っていて、これらのデフォルト値を持たせたいのですか? – Majikat

+0

こんにちは、モデルの新しいレコードを作成するには、それらの2つの新しいフィールドは、デフォルト値を持っています:) – NeoVe

答えて

2

新しいAPIでは、継承されたモデルのフィールドをオーバーライドし、静的な値または関数を使用してデフォルト値を割り当てることができます。ここでは例として、あなたが別の構文を使用して、類似した何かを行うことができ、古いAPIを使用してプログラム的にDEFAULT VALUE

def _email_default(self): 
     return '[email protected]' 

    email = fields.Char(default=_email_default) 

を割り当てる

email = fields.Char(default='[email protected]') 

STATICデフォルト値を割り当てる

class Partner(models.Model): 
    _inherit = 'res.partner' 

です。

class Partner(osv.osv): 
    _inherit = 'res.partner' 

    _columns = { 
     'email': fields.char('Email') 
    } 

私は本当にあなたの質問を理解していないのDEFAULT VALUE

def _email_default(self, cr, uid, ctx={}): 
     return '[email protected]' 

    _defaults = { 
     'email': _email_default, 
    } 

のDEFAULT VALUE

_defaults = { 
     'email': '[email protected]', 
    } 
+0

こんにちは、ありがとう、非常に素晴らしい説明、私はまだ結果がないが、私は開きますそれについての新しい質問! – NeoVe

+0

本当に素晴らしい答えです! – CZoellner

関連する問題