跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. 整理了一部非常适合新手入门的开发手册

整理了一部非常适合新手入门的开发手册

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
23 帖子 13 发布者 24.8k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 杨 离线
    杨 离线
    杨晓程
    写于 最后由 编辑
    #11

    自定义模块时报错TOT

    S 1 条回复 最后回复
    0
    • S 离线
      S 离线
      stefan_xpl
      在 回复了 杨晓程 最后由 编辑
      #12

      @杨晓程 自己写的模块?报什么错截图看看

      1 条回复 最后回复
      0
      • T 离线
        T 离线
        today1001
        写于 最后由 编辑
        #13

        不错.很有用.谢谢.

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

          按照手册一步一步做,在到第二章时自定义模块出了以下
          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="售后单" res_model="shouhou.shouhoudan" view_mode="tree,form"/>

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

            在仿照着请假模块做一个简易的售后模块,然后就出现这种情况,然后用作者的源码一步一步仿照着做也是会在修改好view文件之后出现报错

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

              hello @zysdmjj 你这里的错误是shouhou.shouhoudan这个模型没有在python里面定义,如果还有问题,你可以贴出你完整的代码。

              <act_window id="action_shouhou_shouhoudan" name="售后单" res_model="shouhou.shouhoudan" view_mode="tree,form"/>
              

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

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

                @Joshua
                _manifest.py

                # -*- coding: utf-8 -*-
                {
                    'name': "shouhou",
                
                    'summary': """
                        售后模块""",
                
                    'description': """
                        售后模块
                    """,
                
                    'website': "http://www.yourcompany.com",
                
                    # 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',
                    ],
                }
                
                1 条回复 最后回复
                0
                • Z 离线
                  Z 离线
                  zysdmjj
                  写于 最后由 digitalsatori 编辑
                  #18

                  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="售后事由")
                  

                  view.xml

                  <openerp>
                      <data>
                          <!-- tree视图 -->
                          <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>
                  
                          <!-- form视图 -->
                          <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
                  • Z 离线
                    Z 离线
                    zysdmjj
                    在 回复了 Joshua 最后由 编辑
                    #19

                    @Joshua 我仔细的看了一下,在对models文件和manifest文件做好修改之后,按照您给我的那份手册中的说法,似乎是需要重启服务器对Python文件进行加载(我用的是Godoo10,暂时没找到如何开启dev模式),然而反复重启多次,我添加的这个自定义模块里的models文件所定义的shouhou.shouhoudan模型也没有加载,同时我在odoo浏览器客户端中的数据库结构的模型项中搜索之后也没有发现这个模型,不知道如何将其正确的加载

                    1 条回复 最后回复
                    0
                    • digitalsatoriD 离线
                      digitalsatoriD 离线
                      digitalsatori 管理员
                      写于 最后由 编辑
                      #20

                      帮你编辑了一下帖子,请用```包住你的代码,这样就能保持代码格式,并且有语法加亮了。

                      你在__init__.py中有import 你的model.py吗?

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

                      1 条回复 最后回复
                      0
                      • digitalsatoriD 离线
                        digitalsatoriD 离线
                        digitalsatori 管理员
                        写于 最后由 编辑
                        #21

                        如果你这样修改后还要重启服务器,并更新模块

                        可以手动重启(因为报错无法进入系统更新模块了):

                        odoo-bin -d YourDB -u 请假单模块
                        

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

                        1 条回复 最后回复
                        0
                        • digitalsatoriD 离线
                          digitalsatoriD 离线
                          digitalsatori 管理员
                          写于 最后由 编辑
                          #22

                          另外,提问请开新帖,谢谢了。

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

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

                            支持,新人一枚。

                            1 条回复 最后回复
                            0

                            • 登录

                            • 没有帐号? 注册

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