跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. 修改现有Object增加字段,通过更新模块后新字段加不进去?

修改现有Object增加字段,通过更新模块后新字段加不进去?

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

    把官方的travel模块拿下来练手,安装完毕后,修改custome.py,增加一个'is_hostel'字段,见下面的'is_hostel'
        columns = {
            'rooms_id': fields.one2many('travel.room', 'hostel_id', 'Rooms'),
            'quality': fields.char('Quality', size=16),
            'is_hostel': fields.boolean('Is Hostel'),
        }

    然后更新模块,选择'Travel'模块进行update,可是新字段不齐作用,到对象的字段里面查询不到这个字段
    我的问题: 难道OE只能更新__openerp
    _.py里面[update_xml]部分的XML吗? 如果是的话那模块可咋开发测试?

    另外我想试试是不是卸载模块重新安装可以,结果卸载再安装报错了,看来模块的卸载还是不好整

    1 条回复 最后回复
    0
    • wjfonhandW 离线
      wjfonhandW 离线
      wjfonhand
      写于 最后由 编辑
      #2

      重启openerp server
      因为__init__.py 里 import 了custome.py,生成了custome.pyc文件
      你改了custome.py后程序还是调用custome.pyc
      重新启动openerp server并登陆数据库,会重新加载所有已安装模块,这个custome.pyc会被重新生成,然后你再更新模块数据库里才有这个字段。

      个人理解。
      不知道我说的对不对,或者是不是足够清楚。

      GoodERP -- Odoo China fork

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

        我再提示一点,确保你的addons下没有travel.zip,因为当zip和文件夹同时存在的时候,zip文件优先级会先于文件夹。文件夹的修改就会没发影响系统。

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

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

          多谢两位大拿的帮助!!
          按照Jeff的方法重启再更新模块就行了,另外也谢谢Joshua的提醒,zip我也是怕影响,已经删掉了
          还有个问题,这个pyc不是在被import的时候,如果py文件已经改变,会重新生成吗?但是现在我试验把pyc文件删除,OE都不重新生成pyc,不过感觉这个机制应该是Python的,和OE无关
          我现在是在Eclipse下面debug模式运行的,记得前段时间把py只要一改,服务器会有所动作,但是现在悄无声息了

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

            进一步测试结果:
            用运行__init__.py的方式,python生成了新的pyc, 但是更新模块不管用,重启server后,再次更新模块就OK了
            看了下,pyc文件就是我手工生成的那个,在server重启的时候没有变化,所以看来这个还是和OE的模块更新机制有关
            后续有时间得仔细看看OE的模块管理代码了,因为在开发调试的时候肯定会碰到这种修改object的情况,总是手工重启服务器不是办法
            不知两位有啥好方法,你们开发过程中也应该有这个问题吧?

            1 条回复 最后回复
            0

            • 登录

            • 没有帐号? 注册

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