微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

获取 company_id 到自定义 odoo 13 模块

如何解决获取 company_id 到自定义 odoo 13 模块

我正在尝试使用 cscart odoo 桥接器将我的 odoo 实例连接到我的 cscart 商店。回想起来,这是一个非常糟糕的决定。无论如何,当我尝试安装带有此错误的原始软件包时,安装失败 在odoo13上安装多通道桥接器时出现以下错误

Error:
odoo Server Error

Traceback (most recent call last):
File "/opt/odoo13/odoo/odoo/addons/base/models/ir_ui_view.py",line 394,in _check_xml
self.postprocess_and_fields(view.model,view_doc,view.id)
File "/opt/odoo13/odoo/odoo/addons/base/models/ir_ui_view.py",line 1007,in postprocess_and_fields
self.raise_view_error("\n".join(msg_lines),view_id)
File "/opt/odoo13/odoo/odoo/addons/base/models/ir_ui_view.py",line 614,in raise_view_error
raise ValueError(message)
ValueError: Field 'company_id' used in attributes must be present in view but is missing:
- 'company_id' in domain="[('company_id','in',[company_id,False])]"
- 'company_id' in domain="[('company_id',False])]"

Error context:
View `product.pricelist.item.tree`
[view_id: 1925,xml_id: n/a,model: product.pricelist.item,parent_id: n/a]

During handling of the above exception,another exception occurred:

Traceback (most recent call last):
File "/opt/odoo13/odoo/odoo/tools/convert.py",line 712,in parse
self._tag_root(de)
File "/opt/odoo13/odoo/odoo/tools/convert.py",line 674,in _tag_root
f(rec)
File "/opt/odoo13/odoo/odoo/tools/convert.py",line 577,in _tag_record
record = model._load_records([data],self.mode == 'update')
File "/opt/odoo13/odoo/odoo/models.py",line 4168,in _load_records
records = self._load_records_create([data['values'] for data in to_create])
File "/opt/odoo13/odoo/odoo/models.py",line 4082,in _load_records_create
return self.create(values)
File "<decorator-gen-31>",line 2,in create
File "/opt/odoo13/odoo/odoo/api.py",line 336,in _model_create_multi
return create(self,arg)
File "/opt/odoo13/odoo/odoo/addons/base/models/ir_ui_view.py",line 475,in create
return super(View,self).create(vals_list)
File "<decorator-gen-3>",arg)
File "/opt/odoo13/odoo/odoo/models.py",line 3843,in create
fields[0].determine_inverse(batch_recs)
File "/opt/odoo13/odoo/odoo/fields.py",line 1155,in determine_inverse
getattr(records,self.inverse)()
File "/opt/odoo13/odoo/odoo/addons/base/models/ir_ui_view.py",line 299,in _inverse_arch
view.write(data)
File "/opt/odoo13/odoo/addons/website_theme_install/models/theme_models.py",line 226,in write
res = super(IrUiView,other_views).write(vals)
File "/opt/odoo13/odoo/addons/website/models/ir_ui_view.py",line 51,in write
return super(View,self).write(vals)
File "/opt/odoo13/odoo/odoo/addons/base/models/ir_ui_view.py",line 493,in write
res = super(View,self).write(self._compute_defaults(vals))
File "/opt/odoo13/odoo/odoo/models.py",line 3632,in write
real_recs._validate_fields(vals,inverse_fields)
File "/opt/odoo13/odoo/odoo/models.py",line 1206,in _validate_fields
check(self)
File "/opt/odoo13/odoo/odoo/addons/base/models/ir_ui_view.py",line 396,in _check_xml
raise ValidationError("%s\n\n%s" % (_("Error while validating view"),tools.ustr(e)))
odoo.exceptions.ValidationError: ('Error while validating view\n\nField \'company_id\' used in attributes must be present in view but is missing:\n - \'company_id\' in domain="[(\'company_id\',\'in\',False])]"\n - \'company_id\' in domain="[(\'company_id\',False])]"\n\nError context:\nView `product.pricelist.item.tree`\n[view_id: 1925,parent_id: n/a]',None)

During handling of the above exception,another exception occurred:

Traceback (most recent call last):
File "/opt/odoo13/odoo/odoo/http.py",line 624,in _handle_exception
return super(JsonRequest,self)._handle_exception(exception)
File "/opt/odoo13/odoo/odoo/http.py",line 310,in _handle_exception
raise pycompat.reraise(type(exception),exception,sys.exc_info()[2])
File "/opt/odoo13/odoo/odoo/tools/pycompat.py",line 14,in reraise
raise value
File "/opt/odoo13/odoo/odoo/http.py",line 669,in dispatch
result = self._call_function(**self.params)
File "/opt/odoo13/odoo/odoo/http.py",line 350,in _call_function
return checked_call(self.db,*args,**kwargs)
File "/opt/odoo13/odoo/odoo/service/model.py",line 94,in wrapper
return f(dbname,**kwargs)
File "/opt/odoo13/odoo/odoo/http.py",line 339,in checked_call
result = self.endpoint(*a,**kw)
File "/opt/odoo13/odoo/odoo/http.py",line 915,in __call__
return self.method(*args,line 515,in response_wrap
response = f(*args,**kw)
File "/opt/odoo13/odoo/addons/web/controllers/main.py",line 1331,in call_button
action = self._call_kw(model,method,args,kwargs)
File "/opt/odoo13/odoo/addons/web/controllers/main.py",line 1319,in _call_kw
return call_kw(request.env[model],kwargs)
File "/opt/odoo13/odoo/odoo/api.py",line 387,in call_kw
result = _call_kw_multi(method,model,line 374,in _call_kw_multi
result = method(recs,**kwargs)
File "<decorator-gen-59>",in button_immediate_install
File "/opt/odoo13/odoo/odoo/addons/base/models/ir_module.py",line 72,in check_and_log
return method(self,**kwargs)
File "/opt/odoo13/odoo/odoo/addons/base/models/ir_module.py",line 463,in button_immediate_install
return self._button_immediate_function(type(self).button_install)
File "/opt/odoo13/odoo/odoo/addons/base/models/ir_module.py",line 573,in _button_immediate_function
modules.registry.Registry.new(self._cr.dbname,update_module=True)
File "/opt/odoo13/odoo/odoo/modules/registry.py",line 86,in new
odoo.modules.load_modules(registry._db,force_demo,status,update_module)
File "/opt/odoo13/odoo/odoo/modules/loading.py",line 423,in load_modules
loaded_modules,update_module,models_to_check)
File "/opt/odoo13/odoo/odoo/modules/loading.py",line 315,in load_marked_modules
perform_checks=perform_checks,models_to_check=models_to_check
File "/opt/odoo13/odoo/odoo/modules/loading.py",line 225,in load_module_graph
load_data(cr,idref,mode,kind='data',package=package,report=report)
File "/opt/odoo13/odoo/odoo/modules/loading.py",line 68,in load_data
tools.convert_file(cr,package.name,filename,noupdate,kind,report)
File "/opt/odoo13/odoo/odoo/tools/convert.py",line 736,in convert_file
convert_xml_import(cr,module,fp,line 803,in convert_xml_import
obj.parse(doc.getroot())
File "/opt/odoo13/odoo/odoo/tools/convert.py",line 721,in parse
exc_info[2]
File "/opt/odoo13/odoo/odoo/tools/pycompat.py",line 13,in reraise
raise value.with_traceback(tb)
File "/opt/odoo13/odoo/odoo/tools/convert.py",tools.ustr(e)))
odoo.tools.convert.ParseError: "Error while validating view

Field 'company_id' used in attributes must be present in view but is missing:
- 'company_id' in domain="[('company_id',parent_id: n/a]
None" while parsing /opt/odoo13/odoo-custom-addons/odoo_multi_channel_sale/views/core/product_pricelist.xml:5,near
<odoo>
<data>
<record id="odoo_multi_channel_sale.search_product_pricelist_items" model="ir.ui.view">
<field name="name">product.pricelist.item.search</field>
<field name="model">product.pricelist.item</field>
<field name="arch" type="xml">
<search string="Pricelist">
<field name="product_id" filter_domain="[('product_id','ilike',self)]"/>
<field name="product_tmpl_id" filter_domain="[('product_tmpl_id',self)]"/>
<group expand="0" string="Group By...">
<filter string="Pricelist" name="filter_by_pricelist_id" context="{'group_by':'pricelist_id'}"/>
<group string="Filters">
<filter icon="terp-check" name="pricelist_id" string="Pricelist" domain="[]" help="Pricelist" context="{'group_by':'pricelist_id'}"/>
</group>
</group>
</search>
</field>
</record>

<record id="channel_pricelist_item_tree" model="ir.ui.view">
<field name="name">product.pricelist.item.tree</field>
<field name="model">product.pricelist.item</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="pricelist_id"/>
<field name="name" string="Applicable On"/>
<field name="min_quantity"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="price" string="Price"/>
<field name="base" invisible="1"/>
<field name="product_id" invisible="1"/>
<field name="product_tmpl_id" invisible="1"/>
<field name="price_discount" invisible="1"/>
<field name="applied_on" invisible="1"/>
<field name="compute_price" invisible="1"/>
</tree>
</field>
</record>

<record id="product_pricelist_item_action" model="ir.actions.act_window">
<field name="name">Pricelists Item</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.pricelist.item</field>
<field name="view_mode">tree,form</field>
<field name="context">{'search_default_filter_by_pricelist_id':1}</field>
</record>

<menuitem id="menu_product_pricelist_item_main" name="Pricelists Items" parent="sale.product_menu_catalog" action="product_pricelist_item_action" groups="product.group_sale_pricelist" sequence="4"/>
</data>
</odoo>

稍加修改后,我想我将错误范围缩小到 product.pricelist.item 文件缺少一个名为 company_id 的字段这一事实。我将这个字段添加到扩展中,如下

<?xml version="1.0" encoding="utf-8"?>
<!-- copyright (c) 2015-Present Webkul Software Pvt. Ltd. (<https://webkul.com/>) -->
<!-- See LICENSE file for full copyright and licensing details. -->
<!-- "License URL :<https://store.webkul.com/license.html/>" -->
<odoo>
    <data>
        <record id="odoo_multi_channel_sale.search_product_pricelist_items" model="ir.ui.view">
            <field name="name">product.pricelist.item.search</field>
            <field name="model">product.pricelist.item</field>
            <field name="arch" type="xml">
                <search string="Pricelist">
                    <field name="product_id" filter_domain="[('product_id',self)]"/>
                    <field name="product_tmpl_id" filter_domain="[('product_tmpl_id',self)]"/>
                    <group expand="0" string="Group By...">
                        <filter
                            string ="Pricelist"
                            name   ="filter_by_pricelist_id"
                            context="{'group_by':'pricelist_id'}"
                        />
                        <group string="Filters">
                            <filter
                                icon   ="terp-check"
                                name   ="pricelist_id"
                                string ="Pricelist"
                                domain ="[]"
                                help   ="Pricelist"
                                context="{'group_by':'pricelist_id'}"
                            />
                        </group>
                    </group>
                </search>
            </field>
        </record>

        <record id="channel_pricelist_item_tree" model="ir.ui.view">
            <field name="name">product.pricelist.item.tree</field>
            <field name="model">product.pricelist.item</field>
            <field name="type">tree</field>
            <field name="arch" type="xml">
                <tree editable="bottom">
                    <field name="pricelist_id"/>
                    <field name="name" string="Applicable On"/>
                    <field name="min_quantity"/>
                    <field name="date_start"/>
                    <field name="date_end"/>
                    <field name="price" string="Price"/>
                    <field name="base" invisible="1"/>
                    <field name="product_id" invisible="1"/>
                    <field name="product_tmpl_id" invisible="1"/>
                    <field name="price_discount" invisible="1"/>
                    <field name="applied_on" invisible="1"/>
                    <field name="compute_price" invisible="1"/>
                    <field name="company_id" invisible="1"/> <--------------- ADDED THIS LINE
 
                </tree>
            </field>
        </record>

        <record id="product_pricelist_item_action" model="ir.actions.act_window">
            <field name="name">Pricelists Item</field>
            <field name="type">ir.actions.act_window</field>
            <field name="res_model">product.pricelist.item</field>
            <field name="view_mode">tree,form</field>
            <field name="context">{'search_default_filter_by_pricelist_id':1}</field>
        </record>

        <menuitem
            id      ="menu_product_pricelist_item_main"
            name    ="Pricelists Items"
            parent  ="sale.product_menu_catalog"
            action  ="product_pricelist_item_action"
            groups  ="product.group_sale_pricelist"
            sequence="4"
        />
    </data>
</odoo>

文件添加该行后,插件按预期安装,但是 company_id 并未实际提供给该字段,因此在尝试使用所述插件时会发生许多错误。我怎样才能将 company_id 的值放入我的 xml 文件中,以便我可以使用这个扩展,因为发布日也快到了。我也联系了他们的支持,但还没有成功。如果有帮助,也愿意共享对测试实例的访问。谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。