2017-08-21 8 views
1

odooを使用して、データベースへのデータの大量インポートを行うアプリケーションを開発しています。 手続きは簡単です。char変数でオブジェクトを作成しただけですべてが同じになるようにしました。次に、各行のExcelテンプレートからすべての行を読み込み、このオブジェクトの新しいレコードを作成します。 これで、すべてのExcel行がロードされたときにサーバーアクションを実行したいと思いました。この方法で、すべてのデータを処理し、変数を割り当て、作成した別のオブジェクトで各列に変数の型を選択できます。 問題は、それがNoneTypeだと何の方法import_pricelistサーバアクションでPythonコードを実行中にエラーが発生しました

サーバーを持っていない私のモデルのために参照することになっている人は、この行object.import_pricelist()にロードされますが、オブジェクトされますが、Excelファイルの後にコードの一部を実行することができ、サーバのアクションを使用していますアクションDef。

<record id="action_python_import" model="ir.actions.server"> 
    <field name="name">Import PriceList</field> 
    <field name="model_id" ref="model_product_raw"/> 
    <field name="condition">True</field> 
    <field name="type">ir.actions.server</field> 
    <field name="state">code</field> 
    <field name="code">object.import_pricelist()</field> 
</record> 

モデルと方法DEF

class ProductRaw(models.Model): 
_name="product.raw" 

name = fields.Char("Product Name") 
price = fields.Char("Product Price") 
vendor_code = fields.Char("Vendor Code") 
product_code = fields.Char("Product Code") 
flag_processed = fields.Boolean("Processed",default=False) 
flag_error = fields.Boolean("Error",default=False) 
error_desc = fields.Char("Error Description") 

@api.multi 
def import_pricelist(self): 

答えて

1

selfは文脈で提供される場合、オブジェクトは、active_idへの参照で、あなたのモデルを参照する必要があります。 @api.multiの代わりに@api.modelデコレータを使用し、objectの代わりに、モデルの特定のオブジェクトに接続されていないメソッドを実行しようとしている場合(正しく認識するとオブジェクトを作成したい場合)これは

<field name="code">self.import_pricelist()</field> 

私が助けてくれたら教えてください。

関連する問題