我作为自定义odoo模块编写,其中一些配置可由用户设置。
因此,我创建了一个res_config.py
包含:
# -*- coding: utf-8 -*-
from openerp import models, fields, api
class mymodule_configuration(models.TransientModel):
_name = 'mymodule.config.settings'
_inherit = 'res.config.settings'
default_myfield = fields.Char(
string='my description',
required=True,
help="mydescription",
default_model='mymodule.config.settings',
)
作为一种观点,我创建了views/resconfigview.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="view_mymodule_configuration" model="ir.ui.view">
<field name="name">mymodule configuration</field>
<field name="model">mymodule.config.settings</field>
<field name="arch" type="xml">
<form string="mymodule configuration"
class="oe_form_configuration">
<sheet>
<div>
<button string="Apply"
type="object"
name="execute"
class="oe_highlight" />
or
<button string="Cancel"
type="object"
name="cancel"
class="oe_link" />
</div>
<group string="My Settings">
<field name="default_myfield" />
</group>
[..]
当我安装模块时,服务器会使用500.在日志文件中,我找到:
Field(s) `arch` failed against a constraint: Invalid view definition
Error details:
Konnte Modell nicht finden: mymodule.config.settings
英文消息:Could not find model: mymodule.config.settings
。
所以在视图中,我的配置模型无法访问。
有什么想法吗?
答案 0 :(得分:1)
从模型中删除_name = 'mymodule.config.settings'
,因为您继承了现有模型,因此无需另外定义新名称,它将创建新模型。
然后,在继承的模型中将无法访问您在新模型中定义的字段。
在xml中更新此行。
<field name="model">res.config.settings</field>
在模型
之后再向xml视图添加一行<field name="priority" eval="50" />
同时删除default_model='mymodule.config.settings',
default_myfield = fields.Char(string='my description',required=True,help="mydescription",)
您错过了继承res.config.settings
<field name="inherit_id" ref="set view id here"/>
答案 1 :(得分:0)
我遇到了同样的问题,但我跟着STEPS并解决了我的问题。 您可以使用给定链接上的步骤,我希望您能解决您的问题。
答案 2 :(得分:-1)
确保将mymodule.config.settings
导入__init__.py
文件中,并运行此命令以保存文件
./odoo-bin -u your module name
应该帮助您解决问题