【问题标题】:Can't import a model in odoo view无法在 odoo 视图中导入模型
【发布时间】:2017-08-03 05:15:51
【问题描述】:

我已经在 linux 上安装了 odoo 10,它运行良好 我正在关注 odoo 网站“构建模块”的官方教程

https://www.odoo.com/documentation/10.0/howtos/backend.html#build-an-odoo-module

我用

创建了一个空模块
odoo-bin scaffold openacademy addons

但是当我尝试将模块导入 xml 文件 openacademy.xml 时,我收到以下错误

Error context:
View `course.form`

[view_id: 4867, xml_id: n/a, model: openacademy.course, parent_id: n/a]
None" while parsing /opt/odoo/odoo-

10.0/addons/openacademy/views/openacademy.xml:6, near
<record model="ir.ui.view" id="course_form_view">
        <field name="name">course.form</field>
        <field name="model">openacademy.course</field>
        <field name="arch" type="xml">
            <form string="Course Form">
                <sheet>
                    <group>
                        <field name="name"/>
                        <field name="description"/>
                    </group>
                </sheet>
            </form>
        </field>
    </record>

openacademy.xml

 <?xml version="1.0" encoding="utf-8"?>
   <odoo>
    <data>
        <record model="ir.ui.view" id="course_form_view">
            <field name="name">`course.form`</field>
            <field name="model">`openacademy.course`</field>
            <field name="arch" type="xml">
                <form string="Course Form">
                    <sheet>
                        <group>
                            <field name="name"/>
                            <field name="description"/>
                        </group>
                    </sheet>
                </form>
            </field>
        </record>  
  </data>
</odoo>

models.py

from odoo import models, fields, api

class Course(models.Model):
_name = 'openacademy.course'

name = fields.Char(string="Title", required=True)
description = fields.Text()

__init__.py

from . import models

【问题讨论】:

  • 修正你的缩进,为什么你的 xml 代码中到处都是反引号 (``)?
  • @danidee 我已经修复了缩进,但视图仍然无法识别模型

标签: python ubuntu model openerp odoo-10


【解决方案1】:

__init__.py 中尝试使用

import models

【讨论】:

  • 我有 2 个 _init_.py 文件,并且都有 import models,还有其他建议吗?
  • 这个模块的文件夹结构是什么?
  • 它是使用odoo-bin scaffold openacademy addons 命令创建的基本结构,3 个文件夹(视图、模块、控制器)
  • 没关系,我已经解决了问题,我刚刚创建了另一个空模型并将我的文件复制到那里,谢谢
【解决方案2】:

尝试替换此代码:

 <field name="name">course.form</field>
 <field name="model">openacademy.course</field>

不能在 XML 中使用“''”,否则会导致错误。 然后像这样在行的开头留一些空间

 from odoo import models, fields, api
 class Course(models.Model):
      _name = "openacademy.course"

      name = fields.Char(string="Title", required=True)
      description = fields.Text()

【讨论】:

    【解决方案3】:

    示例“构建模块”init.py(来自https://www.odoo.com/documentation/10.0/howtos/backend.html)没有问题,它在 addons/openacademy/models 下导入模型。

    就我而言,我必须重新启动 odoo(杀死当前的 odoo-bin 并重新启动)。导入“openacademy.course”的错误消失,安装成功。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-11
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多