跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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 新手求助
6 帖子 2 发布者 7.4k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • X 离线
    X 离线
    xmbsec
    写于 最后由 编辑
    #1

    按照此例:<br / [检测到链接无效,已移除] br />编写的模块,在7.0安装时遇到错误:
    File "/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_ui_view.py", line 126, in _check_render_view
        fvg = self.pool.get(view.model).fields_view_get(cr, uid, view_id=view.id, view_type=view.type, context=cont$
    AttributeError: 'NoneType' object has no attribute 'fields_view_get'
    2013-07-30 07:03:04,529 20870 ERROR bsec openerp.tools.convert: Parse error in /opt/openerp/addon/oecn_training$
    <record model="ir.ui.view" id="oecn_training_lesson_from_view">
                <field name="name">&#35838;&#31243;&#34920;&#21333;</field>
                <field name="type">form</field>
                <field name="model">oecn.training.lesson</field>
                <field name="arch" type="xml">
                    <form string="&#35838;&#31243;&#34920;&#21333;">
                        <field name="name"/>
                        <field name="date_start"/>
                        <field name="total_day"/>
                        <field name="price"/>
                        <field name="teacher"/>
                        <field name="students" colspan="4"/>
                    </form>
                </field>
            </record>
    验证字段 arch 时发生错误:Invalid XML for View Architecture!
    Traceback (most recent call last):
      File "/usr/lib/pymodules/python2.7/openerp/netsvc.py", line 292, in dispatch_rpc
        result = ExportService.getService(service_name).dispatch(method, params)
      File "/usr/lib/pymodules/python2.7/openerp/service/web_services.py", line 626, in dispatch
        res = fn(db, uid, *params)
      File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 188, in execute_kw
        return self.execute(db, uid, obj, method, *args, **kw or {})
      File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 144, in wrapper
        raise except_osv(inst.name, inst.value)

    错误的核心有两处,
    一是
    AttributeError: 'NoneType' object has no attribute 'fields_view_get'
    此错误在launchpad上能找到相关的bug:<br / https://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CEAQFjAC&url=https%3A%2F%2Fbugs.launchpad.net%2Fbugs%2F1077794&ei=Kmj3UY2eEsmXkwWuuoDIDg&usg=AFQjCNFzGWu7j6hd-wpbZMKINCIFL_2Bag br /> 明确说明此错误描述本身不清晰,应该是对象不存在导致xml结构验证错误,
    二是
    验证字段 arch 时发生错误:Invalid XML for View Architecture!
    此位置一再验证无法看到错误,且有一的bug描述,应该不是根本原因。

    数据库中确实没有我新增的oecn.training.lesson表存在。。。

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

      [quote]数据库中确实没有我新增的oecn.training.lesson表存在。。。[/quote]
      其实你已经找到原因了。检查下你的__init__.py有没有引入你的oecn.training.lesson class

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

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

        Joshua版主请赐教:
        init.py中不是写 import python文件名么?应该写类名?

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

          搞两天居然还没搞定这个,信心受打击了呀~请大大帮忙则个:

          init.py
          # -- encoding: utf-8 --
          import lesson

          openerp.py
          {
              "name" : "OECN Training", #模块名
              "version" : "1.0", #模块版本
              "description" : "OCEN training Demo", #说明
              "author" : "xmbcit", #作者
              "website" : "http://www.xmbcit.net", #网站
              "depends" : [], #依赖
              "data" : ["lesson_view.xml"],#读入的文件
              "installable" : True, #可安装
              "category" : "Generic Modules/Others" #类型
          }


          lesson.py
          # -- coding: utf-8 --
          from openerp.osv import fields, osv

          class oecn_training_lesson(osv.osv):
              _name = 'oecn.training.lesson'
              _discription = 'OECN 培训课程'
              _columns = {
              'name':fields.char( u'课程名',size=64,select=True),
              'date_start':fields.date(u'开始日期',select=True),
              'total_day':fields.float(u'总天数',digits=(16,1)),
              'teacher':fields.many2one('res.users',u'授课老师'),
              'students':fields.many2many('res.partner',string=u'学生'),
              'price':fields.float(u'价格',digits=(16,2)),
              }
          oecn_training_lesson()


          lesson_view.xml
          <?xml version="1.0" encoding="utf-8"?>
          <openerp>
              <data>
              <!--定义表单视图-->
                  <record model="ir.ui.view" id="oecn_training_lesson_from_view">
                      <field name="name">课程表单</field>
                      <field name="type">form</field>
                      <field name="model">oecn.training.lesson</field>
                      <field name="arch" type="xml">
                          <form string="课程表单">
                              <field name="name"/>
                              <field name="date_start"/>
                              <field name="total_day"/>
                              <field name="price"/>
                              <field name="teacher"/>
                              <field name="students" colspan="4"/>
                          </form>
                      </field>
                  </record>
                  <!--定义列表视图-->
                  <record model="ir.ui.view" id="oecn_training_lesson_tree_view">
                      <field name="name">课程列表</field>
                      <field name="type">tree</field>
                      <field name="model">oecn.training.lesson</field>
                      <field name="arch" type="xml">
                          <tree string="课程列表">
                              <field name="name"/>
                              <field name="date_start"/>
                              <field name="teacher"/>
                              <field name="price" sum="合计"/>
                          </tree>
                      </field>
                  </record>
          <!--定义视图动作-->
              <record model="ir.actions.act_window"  id="action_oecn_training_lesson">
                  <field name="name">课程</field>
                  <field name="res_model">oecn.training.lesson</field>
                  <field name="view_type">form</field>
                  <field name="view_mode">form,tree</field>
                  <field name="view_id" ref="oecn_training_lesson_tree_view"/>
              </record>
          <!--定义菜单-->
              <menuitem id="oecn_menu" name="OECN"/>
              <menuitem id="oecn_training_menu" name="OECN Training" parent="oecn_menu"/>
              <menuitem id="oecn_training_lesson_menu" name="OECN Training Lesson" parent="oecn_training_menu" action="action_oecn_training_lesson"/> 
          </data>
          </openerp>

          1 条回复 最后回复
          0
          • X 离线
            X 离线
            xmbsec
            写于 最后由 编辑
            #5

            无奈之下刚刚重启了server,刷新,再安装,居然成了~~~感谢感谢~~

            1 条回复 最后回复
            0

            • 登录

            • 没有帐号? 注册

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