Odoo找不到模特

时间:2015-07-09 06:50:41

标签: odoo odoo-8

我作为自定义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。 所以在视图中,我的配置模型无法访问。

有什么想法吗?

3 个答案:

答案 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

应该帮助您解决问题