跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 新手求助
  4. 新建模块时models不能加载如何解决

新建模块时models不能加载如何解决

已定时 已固定 已锁定 已移动 Odoo 新手求助
18 帖子 5 发布者 9.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • digitalsatoriD 离线
    digitalsatoriD 离线
    digitalsatori 管理员
    写于 最后由 编辑
    #2

    问题已经在之前的回复里提到了。

    你需要检查一下\shouhou\__init__.py中是否有import models (这是导入models python包), 在\shouhou\models\__init__.py文件中是否有import models(这是导入models python模块)
    我估计你没有这些import, 这就导致你在models.py所定义的实体类模型,没有在系统中生成,而你的view中又要引用这些模型,这样就出错了。

    如果你不知道如何命令行重新加载的话,可以新建一个数据库再试试。

    【上海先安科技】(tony AT openerp.cn)

    1 条回复 最后回复
    0
    • Z 离线
      Z 离线
      zysdmjj
      写于 最后由 zysdmjj 编辑
      #3

      @digitalsatori 在 新建模块时models不能加载如何解决 中说:

      mode

      \shouhou \_init_.py

      # -*- coding: utf-8 -*-
      
      from . import controllers
      from . import models
      

      \shouhou\models

      # -*- coding: utf-8 -*-
      
      from . import models
      

      两个导入模块均有的,或许是我的格式有问题?

      1 条回复 最后回复
      0
      • S 离线
        S 离线
        Siyuan
        写于 最后由 编辑
        #4

        有没有完整的模块? -_-

        Z 1 条回复 最后回复
        0
        • Z 离线
          Z 离线
          zysdmjj
          在 回复了 Siyuan 最后由 zysdmjj 编辑
          #5

          @Siyuan
          .\_init_.py

          # -*- coding: utf-8 -*-
          
          from . import controllers
          from . import models
          

          .\_manifest_.py

          {
              'name': "shouhou",
          
              'summary': """
                  售后模块""",
          
              'description': """
                  售后模块
              """,
          
              'website': "",
          
              # Categories can be used to filter modules in modules listing
              # Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml
              # for the full list
              'category': 'Uncategorized',
              'version': '0.1',
          
              # any module necessary for this one to work correctly
              'depends': ['base'],
          
              # always loaded
              'data': [
                  # 'security/ir.model.access.csv',
                  'views/views.xml',
                  'views/templates.xml',
              ],
              # only loaded in demonstration mode
              'demo': [
                  'demo/demo.xml',
              ],
          }
          

          \models\models.py

          from odoo import models, fields, api
          
          class shouhoudan(models.Model):
              _name = 'shouhou.shouhoudan'
              name = fields.Char(string="报修人")
              days = fields.Integer(string="预计处理时长")
              startdate = fields.Date(string="报修日期日期")
              reason = fields.Text(string="售后事由")
          

          \models\_init_.py

          # -*- coding: utf-8 -*-
          
          from . import models
          

          \views\views.xml

          <openerp>
              <data>
                  <record id="view_tree_shouhou_shouhoudan" model="ir.ui.view">
                      <field name="name">售后单列表</field>
                      <field name="model">shouhou.shouhoudan</field>
                      <field name="arch" type="xml">
                          <tree>
                              <field name="name"/>
                              <field name="days"/>
                              <field name="startdate"/>
                          </tree>
                      </field>
                  </record>
                  <record id="view_form_shouhou_shouhoudan" model="ir.ui.view">
                      <field name="name">售后单</field>
                      <field name="model">shouhou.shouhoudan</field>
                      <field name="arch" type="xml">
                          <form>
                              <sheet>
                                  <group name="group_top" string="售后单">
                                      <field name="name"/>
                                      <field name="days"/>
                                      <field name="startdate"/>
                                      <field name="reason"/>
                                  </group>
                              </sheet>
                          </form>
                      </field>
                  </record>
                  <act_window id="action_shouhou_shouhoudan"
                      name="售后单"
                      res_model="shouhou.shouhoudan"
                      view_mode="tree,form" />
                  <menuitem name="售后" id="menu_shouhou"/>
                  <menuitem name="售后单" id="menu_shouhou_shouhoudan" parent="menu_shouhou" action="action_shouhou_shouhoudan"/>
          
              </data>
          </openerp>
          
          
          1 条回复 最后回复
          0
          • S 离线
            S 离线
            Siyuan
            写于 最后由 编辑
            #6

            @zysdmjj 在 新建模块时models不能加载如何解决 中说:

            from . import controllers

            from . import controllers 是多余的 -_-

            Z 2 条回复 最后回复
            0
            • Z 离线
              Z 离线
              zysdmjj
              在 回复了 Siyuan 最后由 编辑
              #7

              @Siyuan 但是这个并不影响大局吧?对我现在的情况应该没有帮助,在默认模板中有controllers文件夹的,在将来的开发中如果有需要,那么也能用到

              S 1 条回复 最后回复
              0
              • S 离线
                S 离线
                Siyuan
                在 回复了 zysdmjj 最后由 编辑
                #8
                此回复已被删除!
                1 条回复 最后回复
                0
                • Z 离线
                  Z 离线
                  zysdmjj
                  在 回复了 Siyuan 最后由 编辑
                  #9

                  @Siyuan
                  报错如下

                  Traceback (most recent call last):
                    File "D:\GOdoo10\source\odoo\http.py", line 638, in _handle_exception
                      return super(JsonRequest, self)._handle_exception(exception)
                    File "D:\GOdoo10\source\odoo\http.py", line 675, in dispatch
                      result = self._call_function(**self.params)
                    File "D:\GOdoo10\source\odoo\http.py", line 331, in _call_function
                      return checked_call(self.db, *args, **kwargs)
                    File "D:\GOdoo10\source\odoo\service\model.py", line 119, in wrapper
                      return f(dbname, *args, **kwargs)
                    File "D:\GOdoo10\source\odoo\http.py", line 324, in checked_call
                      result = self.endpoint(*a, **kw)
                    File "D:\GOdoo10\source\odoo\http.py", line 933, in __call__
                      return self.method(*args, **kw)
                    File "D:\GOdoo10\source\odoo\http.py", line 504, in response_wrap
                      response = f(*args, **kw)
                    File "D:\GOdoo10\source\addons\web\controllers\main.py", line 866, in call_button
                      action = self._call_kw(model, method, args, {})
                    File "D:\GOdoo10\source\addons\web\controllers\main.py", line 854, in _call_kw
                      return call_kw(request.env[model], method, args, kwargs)
                    File "D:\GOdoo10\source\odoo\api.py", line 681, in call_kw
                      return call_kw_multi(method, model, args, kwargs)
                    File "D:\GOdoo10\source\odoo\api.py", line 672, in call_kw_multi
                      result = method(recs, *args, **kwargs)
                    File "D:\GOdoo10\source\odoo\addons\base\module\module.py", line 527, in button_immediate_upgrade
                      return self._button_immediate_function(type(self).button_upgrade)
                    File "D:\GOdoo10\source\odoo\addons\base\module\module.py", line 484, in _button_immediate_function
                      modules.registry.Registry.new(self._cr.dbname, update_module=True)
                    File "D:\GOdoo10\source\odoo\modules\registry.py", line 78, in new
                      odoo.modules.load_modules(registry._db, force_demo, status, update_module)
                    File "D:\GOdoo10\source\odoo\modules\loading.py", line 333, in load_modules
                      force, status, report, loaded_modules, update_module)
                    File "D:\GOdoo10\source\odoo\modules\loading.py", line 235, in load_marked_modules
                      loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
                    File "D:\GOdoo10\source\odoo\modules\loading.py", line 156, in load_module_graph
                      _load_data(cr, module_name, idref, mode, kind='data')
                    File "D:\GOdoo10\source\odoo\modules\loading.py", line 95, in _load_data
                      tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
                    File "D:\GOdoo10\source\odoo\tools\convert.py", line 851, in convert_file
                      convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
                    File "D:\GOdoo10\source\odoo\tools\convert.py", line 921, in convert_xml_import
                      obj.parse(doc.getroot(), mode=mode)
                    File "D:\GOdoo10\source\odoo\tools\convert.py", line 802, in parse
                      self.parse(rec, mode)
                    File "D:\GOdoo10\source\odoo\tools\convert.py", line 805, in parse
                      self._tags[rec.tag](rec, de, mode=mode)
                    File "D:\GOdoo10\source\odoo\tools\convert.py", line 443, in _tag_act_window
                      id = self.env['ir.model.data']._update('ir.actions.act_window', self.module, res, xml_id, noupdate=self.isnoupdate(data_node), mode=self.mode)
                    File "D:\GOdoo10\source\odoo\addons\base\ir\ir_model.py", line 1159, in _update
                      record = record.create(values)
                    File "D:\GOdoo10\source\odoo\addons\base\ir\ir_actions.py", line 340, in create
                      return super(IrActionsActWindow, self).create(vals)
                    File "D:\GOdoo10\source\odoo\addons\base\ir\ir_actions.py", line 40, in create
                      res = super(IrActions, self).create(vals)
                    File "D:\GOdoo10\source\odoo\models.py", line 3798, in create
                      record = self.browse(self._create(old_vals))
                    File "D:\GOdoo10\source\odoo\models.py", line 3954, in _create
                      self._validate_fields(vals)
                    File "D:\GOdoo10\source\odoo\models.py", line 1058, in _validate_fields
                      check(self)
                    File "D:\GOdoo10\source\odoo\addons\base\ir\ir_actions.py", line 248, in _check_model
                      raise ValidationError(_('Invalid model name %r in action definition.') % action.res_model)
                  ParseError: "Invalid model name u'shouhou.shouhoudan' in action definition.
                  None" while parsing file:///D:/GOdoo10/myaddons/shouhou/views/views.xml:38, near
                  <act_window id="action_shouhou_shouhoudan" name="&#x552E;&#x540E;&#x5355;" res_model="shouhou.shouhoudan" view_mode="tree,form"/>
                  
                  

                  应该就是模型未被成功的导入,但是却不知的为什么会导入不了

                  1 条回复 最后回复
                  0
                  • S 离线
                    S 离线
                    Siyuan
                    写于 最后由 编辑
                    #10

                    @zysdmjj 在 新建模块时models不能加载如何解决 中说:

                    \modles

                    from . import controllers
                    from . import models

                    \modles

                    文件夹名字错了 -_-

                    Z 1 条回复 最后回复
                    0
                    • S 离线
                      S 离线
                      Siyuan
                      写于 最后由 编辑
                      #11

                      学习odoo模块创建,

                      推荐官方文档:

                      https://www.odoo.com/documentation/10.0/howtos/backend.html

                      Building a Module

                      -_-

                      1 条回复 最后回复
                      0
                      • Z 离线
                        Z 离线
                        zysdmjj
                        在 回复了 Siyuan 最后由 zysdmjj 编辑
                        #12

                        @Siyuan
                        额额。。不好意思,这是我在发帖过程中的手打失误,在模块中未发生这样的低级错误。。。但是相应的,问题未被解决。。

                        S 1 条回复 最后回复
                        0
                        • S 离线
                          S 离线
                          Siyuan
                          在 回复了 zysdmjj 最后由 编辑
                          #13

                          @zysdmjj 看下models文件夹下有没有编译过的.pyc文件,没有的话,就是文件没有编译,把controller的import 注释掉

                          -_-

                          Z 1 条回复 最后回复
                          0
                          • Z 离线
                            Z 离线
                            zysdmjj
                            在 回复了 Siyuan 最后由 编辑
                            #14

                            @Siyuan
                            0_1496383996370_QQ截图20170602141306.png
                            有编译过的pyc文件,但是修改日期似乎不对,我是不是应该将其删除之后重新启动服务器再让其编译一次?另外听从您的建议,已将import controller注释掉了

                            1 条回复 最后回复
                            0
                            • Z 离线
                              Z 离线
                              zysdmjj
                              写于 最后由 编辑
                              #15

                              @Joshua 不好意思或许还要麻烦下您,在听从上面的几位朋友的意见之后,我仍然是无法将自己的模型导入到odoo的数据库之中。现在的我真的是黔驴技穷了,恳请答疑解惑,万分感谢

                              1 条回复 最后回复
                              0
                              • JoshuaJ 离线
                                JoshuaJ 离线
                                Joshua 管理员
                                写于 最后由 Joshua 编辑
                                #16

                                你的模块有以下几个问题:

                                1. .\init.py ,如果你的模块里面没有controllers,这行删掉。
                                2. .\manifest.py,如果你的模块里面没有'views/templates.xml',这行删掉。
                                3. .\manifest.py,如果你的模块里面没有'demo/demo.xml',,这行删掉。
                                4. .\models\models.py,文件里面有中文字符,那就在首行加上编码,# -- coding: utf-8 --

                                然后重启odoo服务更新模块,如果还是出错。你可以在启动odoo server的时候通过命令行参数更新模块 -d 数据库名 -u模块名或者你可以删掉旧数据库再重新安装。

                                【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

                                Z 1 条回复 最后回复
                                0
                                • Z 离线
                                  Z 离线
                                  zysdmjj
                                  在 回复了 Joshua 最后由 编辑
                                  #17

                                  @Joshua 感谢,我这就去进行尝试

                                  1 条回复 最后回复
                                  0
                                  • V 离线
                                    V 离线
                                    vmfis
                                    写于 最后由 编辑
                                    #18

                                    我也正在学习odoo,用命令自动生成整个模块文件很方便,我觉得你也可以尝试一下自己弄整个模块文件

                                    1 条回复 最后回复
                                    0

                                    • 登录

                                    • 没有帐号? 注册

                                    • 登录或注册以进行搜索。
                                    • 第一个帖子
                                      最后一个帖子
                                    0
                                    • 版块
                                    • 标签
                                    • 热门
                                    • 用户
                                    • 群组