2017-10-03 8 views
1

私はodoo.com hereでこの質問をしました。Odoo 10.0無効な制約

product.templateビューのフィールドを自分のフィールドに置き換えようとしています。

[Sales/Sales/Products]をクリックして製品を選択し、[請求書]タブをクリックします。 - [プロジェクトにテンプレートを追加]オプションを[テンプレートからプロジェクトを生成]に変更します。これが究極の目標ですが、最初にテンプレートビューにフィールドを追加する必要があります。私はそれに失敗しています!私のモジュールが利用可能である

from odoo import models, fields, api 
from pprint import pprint 
import logging 
class msuk_sales(models.Model): 
    _inherit = 'product.template' 
    logger = logging.getLogger() 
    project_templates = fields.Char('Templates', required=True) #String("template projects") #Many2one('project_project')                                                            
    # for record in project_templates: 
     # logger.log(20, record) 

<odoo> 

    <data> 

    <record model="ir.ui.view" id="view_product_template_form_inherited">                                                                        

     <field name="name">MSUK view product template form</field> 

     <field name="model">product.template</field> 

     <field name="inherit_id" ref="product.product_template_only_form_view" /> 

     <field name="arch" type="xml"> 

      <xpath name="//field[@name='project_id']" position="before"> 

      <field name="project_templates" /> 

      </xpath>  

     </field> 

    </record> 

    </data> 

</odoo> 

とmodels.pyで - ブックhttps://www.amazon.co.uk/Odoo-Development-Essentials-Daniel-Reis-ebook/dp/B01KI1F302/ref=sr_1_1?ie=UTF8&qid=1507024599&sr=8-1&keywords=odoo+10+development+essentialsでの提案に続いて、私はビュー/ views.xmlに次のXMLを作成しました

「Apps」をクリックすると、マニフェスト .py

「アップグレード」をクリックすると気にしません。スタックトレース以下:

2017-10-03 10:24:26,654 18191 INFO miningsearchesuk odoo.modules.loading: loading msuk_sales/views/views.xml                   
2017-10-03 10:24:26,710 18191 ERROR miningsearchesuk odoo.modules.registry: Failed to load registry 

    Traceback (most recent call last): 
     File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 640, in _handle_exception 
     return super(JsonRequest, self)._handle_exception(exception) 
     File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 677, in dispatch 
     result = self._call_function(**self.params) 
     File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 333, in _call_function 
     return checked_call(self.db, *args, **kwargs) 
     File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 101, in wrapper 
     return f(dbname, *args, **kwargs) 
     File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 326, in checked_call 
     result = self.endpoint(*a, **kw) 
     File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 935, in __call__ 
     return self.method(*args, **kw) 
     File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 506, in response_wrap 
     response = f(*args, **kw) 
     File "/usr/lib/python2.7/dist-packages/odoo/addons/web/controllers/main.py", line 889, in call_button 
     action = self._call_kw(model, method, args, {}) 
     File "/usr/lib/python2.7/dist-packages/odoo/addons/web/controllers/main.py", line 877, in _call_kw 
     return call_kw(request.env[model], method, args, kwargs) 
     File "/usr/lib/python2.7/dist-packages/odoo/api.py", line 681, in call_kw 
     return call_kw_multi(method, model, args, kwargs) 
     File "/usr/lib/python2.7/dist-packages/odoo/api.py", line 672, in call_kw_multi 
     result = method(recs, *args, **kwargs) 
     File "/usr/lib/python2.7/dist-packages/odoo/addons/base/module/module.py", line 527, in button_immediate_upgrade 
     return self._button_immediate_function(type(self).button_upgrade) 
     File "/usr/lib/python2.7/dist-packages/odoo/addons/base/module/module.py", line 484, in _button_immediate_function 
     modules.registry.Registry.new(self._cr.dbname, update_module=True) 
     File "/usr/lib/python2.7/dist-packages/odoo/modules/registry.py", line 82, in new 
     odoo.modules.load_modules(registry._db, force_demo, status, update_module) 
     File "/usr/lib/python2.7/dist-packages/odoo/modules/loading.py", line 335, in load_modules 
     force, status, report, loaded_modules, update_module) 
     File "/usr/lib/python2.7/dist-packages/odoo/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 "/usr/lib/python2.7/dist-packages/odoo/modules/loading.py", line 156, in load_module_graph 
     _load_data(cr, module_name, idref, mode, kind='data') 
     File "/usr/lib/python2.7/dist-packages/odoo/modules/loading.py", line 95, in _load_data 
     tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report) 
     File "/usr/lib/python2.7/dist-packages/odoo/tools/convert.py", line 845, in convert_file 
     convert_xml_import(cr, module, fp, idref, mode, noupdate, report) 
     File "/usr/lib/python2.7/dist-packages/odoo/tools/convert.py", line 915, in convert_xml_import 
     obj.parse(doc.getroot(), mode=mode) 
     File "/usr/lib/python2.7/dist-packages/odoo/tools/convert.py", line 796, in parse 
     self.parse(rec, mode) 
     File "/usr/lib/python2.7/dist-packages/odoo/tools/convert.py", line 799, in parse 
     self._tags[rec.tag](rec, de, mode=mode) 
     File "/usr/lib/python2.7/dist-packages/odoo/tools/convert.py", line 707, in _tag_record 
     id = self.env(context=rec_context)['ir.model.data']._update(rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode) 
     File "/usr/lib/python2.7/dist-packages/odoo/addons/base/ir/ir_model.py", line 1228, in _update 
     record = record.create(values) 
     File "/usr/lib/python2.7/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 363, in create 
     return super(View, self).create(self._compute_defaults(values)) 
     File "/usr/lib/python2.7/dist-packages/odoo/models.py", line 3839, in create 
     self._fields[key].determine_inverse(record) 
     File "/usr/lib/python2.7/dist-packages/odoo/fields.py", line 1000, in determine_inverse 
     getattr(records, self.inverse)() 
     File "/usr/lib/python2.7/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 220, in _inverse_arch 
     view.write(data) 
     File "/usr/lib/python2.7/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 381, in write 
     return super(View, self).write(self._compute_defaults(vals)) 
     File "/usr/lib/python2.7/dist-packages/odoo/models.py", line 3564, in write 
     self._write(old_vals) 
     File "/usr/lib/python2.7/dist-packages/odoo/models.py", line 3716, in _write 
     self._validate_fields(vals) 
     File "/usr/lib/python2.7/dist-packages/odoo/models.py", line 1083, in _validate_fields 
     raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e))) 
    ParseError: "Error while validating constraint 

    Argument must be bytes or unicode, got 'NoneType' 
    None" while parsing /home/dominic.pain/miningsearchesuk/src/python/msuk_sales/views/views.xml:3, near 
    <record model="ir.ui.view" id="view_product_template_form_inherited"> 
      <field name="name">MSUK view product template form</field> 
      <field name="model">product.template</field> 
      <field name="inherit_id" ref="product.product_template_only_form_view"/> 
      <field name="arch" type="xml"> 
       <xpath name="//field[@name='project_id']" position="before"> 
       <field name="project_templates"/> 
       </xpath> 
      </field> 
     </record> 

答えて

2

あなたはそれが

<xpath expr="//field[@name='project_id']" position="before"> 
    <field name="project_templates"/> 
</xpath> 
+0

GAHする必要があります間違ったXPath を書きます!ありがとうございました!しかし、今は違うエラーが表示されます: ParseError: "制約の検証中にエラーが発生しました 要素 ''は親にありませんビュー エラーコンテキスト: form' ビュー 'MSUKビューの製品テンプレート[view_idを:4370、xml_id:N /モデル:product.template、PARENT_ID:426] なし」parsing.template しばらく – WeeDom

+0

ことつまり、project_idフィールドが親ビューiにないことを意味します。 e。 product.product_template_only_form_view。そのビューに存在するproject_idを確認してください。 –

+0

「Fields View Get」をクリックすると表示されます... WeeDom

関連する問題