2016-10-15 6 views
0

私が何をしようとしているか説明しましょう。 stockモジュール上継承モデルからの呼び出しフィールドOdoo v9コミュニティ

、あなたがそれをツリーまたはフォームビューである、どのような操作(ピッキング)タイプにナビゲートし、表示されるフィールドの一部は、例えばnameため、product.product、等からのものです。

モデルproduct.productにはpriceというフィールドがありますので、stock.pickingの動きに商品価格を表示する必要があります。

stock.pickingモデルがpriceフィールドを継承していないので、私はproduct.productからpriceを継承するために、少しのモジュールを作成し、次にstock.pickingでそれを示しています。

stockproductの3番目のモジュールです。今

、私models.pyに私は宣言:私のview.xml

# -*- coding: utf-8 -*- 

from openerp import models, fields, api 

class StockMove(models.Model): 
    _inherit = 'stock.move' 

    @api.onchange('name','product_id','move_line_tax_ids','product_uom_qty') 

    price_unit = fields.Float(digits_compute=dp.get_precision('Product Price'), string='Price') 

を私はstock.pickingにこのフィールドを追加します。

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
<data> 

<record id="view_stock_move_tree" model="ir.ui.view"> 
    <field name="name">Stock Move Price Tree</field> 
    <field name="model">stock.picking</field> 
    <field name="inherit_id" ref="stock.vpicktree"/> 
    <field name="arch" type="xml"> 
     <field name="state" position="before"> 
      <field name="price_unit"/> 
     </field> 
    </field> 
</record> 

<record id="view_stock_move_form" model="ir.ui.view"> 
    <field name="name">Stock Move Price Form</field> 
    <field name="model">stock.picking</field> 
    <field name="inherit_id" ref="stock.view_picking_form"/> 
    <field name="arch" type="xml"> 
     <field name="state" position="before"> 
       <field name="price_unit"/> 
      </field> 
    </field> 
</record> 

</data> 
</openerp> 

私はこれを実行しようとするたびに、それはコンソール上で私をスローします。

2016-10-15 05:23:44,821 21578 ERROR argentina werkzeug: Error on request: 
Traceback (most recent call last): 
File "/home/kristian/.virtualenvs/odoo_danisan/lib/python2.7/site-packages/werkzeug/serving.py", line 177, in run_wsgi 
execute(self.server.app) 
File "/home/kristian/.virtualenvs/odoo_danisan/lib/python2.7/site-packages/werkzeug/serving.py", line 165, in execute 
application_iter = app(environ, start_response) 
File "/home/kristian/odoov9/odoo-9.0/openerp/service/server.py", line 246, in app 
return self.app(e, s) 
File "/home/kristian/odoov9/odoo-9.0/openerp/service/wsgi_server.py", line 184, in application 
return application_unproxied(environ, start_response) 
File "/home/kristian/odoov9/odoo-9.0/openerp/service/wsgi_server.py", line 170, in application_unproxied 
result = handler(environ, start_response) 
File "/home/kristian/odoov9/odoo-9.0/openerp/http.py", line 1495, in __call__ 
return self.dispatch(environ, start_response) 
File "/home/kristian/odoov9/odoo-9.0/openerp/http.py", line 1644, in dispatch 
ir_http = request.registry['ir.http'] 
File "/home/kristian/odoov9/odoo-9.0/openerp/http.py", line 365, in registry 
return openerp.modules.registry.RegistryManager.get(self.db) if self.db else None 
File "/home/kristian/odoov9/odoo-9.0/openerp/modules/registry.py", line 355, in get 
update_module) 
File "/home/kristian/odoov9/odoo-9.0/openerp/modules/registry.py", line 386, in new 
openerp.modules.load_modules(registry._db, force_demo, status, update_module) 
File "/home/kristian/odoov9/odoo-9.0/openerp/modules/loading.py", line 334, in load_modules 
force, status, report, loaded_modules, update_module) 
File "/home/kristian/odoov9/odoo-9.0/openerp/modules/loading.py", line 237, in load_marked_modules 
loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks) 
File "/home/kristian/odoov9/odoo-9.0/openerp/modules/loading.py", line 123, in load_module_graph 
load_openerp_module(package.name) 
File "/home/kristian/odoov9/odoo-9.0/openerp/modules/module.py", line 331, in load_openerp_module 
__import__('openerp.addons.' + module_name) 
File "/home/kristian/odoov9/odoo-9.0/openerp/modules/module.py", line 61, in load_module 
mod = imp.load_module('openerp.addons.' + module_part, f, path, descr) 
File "/home/kristian/odoov9/motostion_addons/stock_move_price/__init__.py", line 7, in <module> 
from . import models 
File "/home/kristian/odoov9/motostion_addons/stock_move_price/models/__init__.py", line 1, in <module> 
from . import models 
File "/home/kristian/odoov9/motostion_addons/stock_move_price/models/models.py", line 10 
price_unit = fields.Float(digits_compute=dp.get_precision('Product Price'), string='Price') 
     ^
SyntaxError: invalid syntax 

これを達成する方法?

私は自分自身を説明してくれることを願っています。それ以上の説明が必要な場合は、私にお願いしてください。

ありがとうございます!

price_unit = fields.Float(string='Price', digits=dp.get_precision('Product Price')) 

price_unit = fields.Float(digits_compute=dp.get_precision('Product Price'), string='Price') 

を交換し、インポートセクションにライン以下

import openerp.addons.decimal_precision as dp 

を書きその後Odooサーバーを再起動すると:

答えて

1

次のコードで試してみてくださいカスタムモジュールをアップグレードしてください。

EDIT:

がHi

_inherit = 'stock.picking' 
+0

_inherit = 'stock.move' 

を交換して、どうもありがとうございましたが、今のビューの上には、フィールド '価格の単位は' が存在しないと言う:/、それは奇妙です、すでにodooプロセスを再開しましたが、モジュールをアップグレードしようとしましたが、このエラーが出ました。 – NeoVe

+0

これは私の間違いで、_inheritステートメントを在庫に変更しました。ProgrammingError:外部キー制約「stock_picking_price_unit_fkey」は実装できません 詳細:キー列「price_unit」と「id」は互換性のない型です:数値と整数。 – NeoVe

+0

新しい質問をするつもりです、ありがとうございます。 – NeoVe

関連する問題