【问题标题】:Importing a New Module (openacademy example) Odoo v8导入新模块(openacademy 示例)Odoo v8
【发布时间】:2015-02-17 02:00:36
【问题描述】:

我在 poste windows 7 上安装了 Odoo v8。 我按照官方网站上的“构建模块”教程创建了一个新模块“openacademy”: https://www.odoo.com/documentation/8.0/howtos/backend.html

然后我压缩我的文件“openacademy”==>“openacademy.zip”。

问题:当我尝试导入模块时,出现此错误:

Import Module

WARNING odoo openerp.models: Cannot execute name_search, no _rec_name defined on base.import.module
INFO odoo werkzeug: 127.0.0.1 - - [16/Dec/2014 17:53:03] "POST /web/dataset/call_kw/base.import.module/search_read HTTP/1.1" 200 -
WARNING odoo openerp.modules.module: module openacademy: module not found
INFO odoo openerp.addons.base_import_module.models.ir_module: module openacademy: loading templates.xml
INFO odoo openerp.addons.base_import_module.models.ir_module: module openacademy: loading views/openacademy.xml
INFO odoo werkzeug: 127.0.0.1 - - [16/Dec/2014 17:53:07] "POST /longpolling/poll HTTP/1.1" 200 -
**ERROR odoo openerp.addons.base.ir.ir_ui_view: Model not found: openacademy.course**

Error context:
View 'course.form'
[view_id: 1030, xml_id: n/a, model: openacademy.course, parent_id: n/a]

没有找到模型“openacademy.course”,但它已经存在于“models.py”中!!!

这是我的代码:

models.py

from openerp import models, fields

class Course(models.Model):

    _name = 'openacademy.course'

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

views/openacademy.xml

<openerp>
   <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>    
        <!-- window action -->
        <!--
            The following tag is an action definition for a "window action",
            that is an action opening a view or a set of views
        -->
        <record model="ir.actions.act_window" id="course_list_action">
            <field name="name">Courses</field>
            <field name="res_model">openacademy.course</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
            <field name="help" type="html">
                <p class="oe_view_nocontent_create">Create the first course
                </p>
            </field>
        </record>

        <!-- top level menu: no parent -->
        <menuitem id="main_openacademy_menu" name="Open Academy"/>
        <!-- A first level in the left side menu is needed
             before using action= attribute -->
        <menuitem id="openacademy_menu" name="Open Academy"
                  parent="main_openacademy_menu"/>
        <!-- the following menuitem should appear *after*
             its parent openacademy_menu and *after* its
             action course_list_action -->
        <menuitem id="courses_menu" name="Courses" parent="openacademy_menu"
                  action="course_list_action"/>
        <!-- Full id location:
             action="openacademy.course_list_action"
             It is not required when it is the same module -->
    </data>
</openerp>

__init.py__

import models 

【问题讨论】:

  • 我认为你不需要压缩它

标签: odoo


【解决方案1】:

将你的 models.py 重命名为 course.py

course.py:

from openerp import models, fields

class Course(models.Model):

    _name = 'openacademy.course'

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

并将您的 __init__.py 更改为:

import models 

我认为模型文件的名称应该与类名匹配。您必须为每个表制作不同的模型。

【讨论】:

    【解决方案2】:

    goFrendiAsgard 回答的一部分,试试这个:

    • 在Odoo界面运行“更新应用列表”:

      要查看此选项,您必须打开“技术功能”,进入“设置”->“用户”,编辑您的用户,然后点击“技术功能”。

    • 重启 Odoo 服务器:

      不知道在windows下怎么弄,在linux下是sudo service odoo-server restart

    对于在linux环境下遇到这个问题的人,也可以试试:

    • 检查您的模块文件和文件夹是否拥有正确的所有者和组:

      与其余模块进行比较,并在必要时进行更改。例如sudo chown -R odoo:odoo openacademy/

    • 检查您的模块文件和文件夹权限:

      通常是 755,所以你可以运行sudo chmod -R 755 openacademy/

    【讨论】:

    • 不确定models.py中的Course类是否必须小写才能等于course.py和“import course”语句。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    相关资源
    最近更新 更多