2014-12-18 6 views
0

Я установил Odoo v8 на моем Poste окне 7. я создал новый модуль «openacademy», следуя учебник «Создание модуля» на официальном сайте: https://www.odoo.com/documentation/8.0/howtos/backend.htmlИмпорт нового модуля (openacademy примера) Odoo v8

тогда я застегнул мой файл «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() 

просмотров/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 
+0

Я думаю, что вам не нужно, чтобы пронестись его – goFrendiAsgard

ответ

2

Переименуйте 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 

I имя файла модели модели должно совпадать с именем класса. Вы должны сделать другую модель для каждой таблицы.

2

Часть из goFrendiAsgard ответа, попробуйте с этим:

  • Run «Обновить список приложения» в интерфейсе Odoo:

    Чтобы увидеть эту опцию, вы должны включить «Техническая характеристика» перейдите в Настройки -> Пользователи, отредактируйте своего пользователя и нажмите «Техническая функция».

  • Restart Odoo сервер:

    Я не знаю, как сделать это в Windows, в Linux является sudo service odoo-server restart

Для людей, которые сталкиваются этот вопрос в среде Linux, можно также попробовать:

  • Проверьте ваши модули файлов и папок имеют право владельца и группы:

    Сравните с остальными модулями и измените, если необходимо.Например sudo chown -R odoo:odoo openacademy/

  • Проверьте модуль файлов и разрешения для папки:

    , как правило, 755, так что вы можете запустить sudo chmod -R 755 openacademy/

+0

Не уверен, что если и это необходимо, чтобы класс курса в models.py должен быть более строгим, чтобы быть равным course.py и «import course». – Pin

Смежные вопросы