2016-11-08 14 views
5

CSVインポートを使用して新しい顧客データをOdooにインポートしようとしています。 1つのフィールドcustomer_id_noがあり、レコードが作成されると自動的に生成されます(「ir.sequence」を使用)。Odooでcsv importの "ir.sequence"フィールドを上書きする方法は?

CSVの各顧客レコードには一意のcustomer_id_noがありますが、インポートしようとすると、既存のcustomer_id_noが標準シーケンスで上書きされます。

どのようにしてCSVからのデータをOdooに挿入することができますか?

また、many2oneフィールドをインポートするための回答が見つかりませんでした。それに関するどんな助けも素晴らしいだろう。

+0

私はフィールド 'customer_id_no'に出会ったことはありません。このフィールドはカスタムフィールドですか? Importはモデルのcreate()を使用しています。このシーケンスの使用法がうまく実装されていない場合、この実装を変更することはできません。シーケンスを使用するがデータのインポートを可能にする良い実装の例は、 'sale.order'モデルです。 – CZoellner

+0

フィールド 'customer_id_no'は、カスタムモジュールのカスタムフィールドであり、シーケンスのコードもカスタムモジュールに書き込まれます。 –

+0

@CZoellner私は、設定 - >技術 - >シーケンスと識別子からシーケンスを無効にしようとしたところで、データをインポートしましたが、残念ながら動作しませんでした。 –

答えて

0

@CZoellnerが正しいです。メソッドを変更する必要があります。

@api.model 
def create(self, vals): 
    vals['customer_id_no'] = mechanics_to_generate_sequence() 
    return super(ClassName, self).create(vals) 

customer_id_noが指定されている場合に対処する必要があります。その後、あなたは次のcustomer_id_noで最高の値に次の繰り返しシーケンスを作成する必要があります。この

@api.model 
def create(self, vals): 
    if not vals.get('customer_id_no'): 
     vals['customer_id_no'] = mechanics_to_generate_sequence() 
    return super(ClassName, self).create(vals) 

ノートのように。

関連する問題