跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. 产品类别不能删除的Bug

产品类别不能删除的Bug

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

    产品类别下的所有产品已经删除,但该类别不能删除,错误日志:
    Traceback (most recent call last):
      File "modules\gui\main.pyo", line 1334, in _sig_child_call
      File "modules\gui\window\form.pyo", line 263, in sig_remove
      File "widget\screen\screen.pyo", line 522, in remove
      File "rpc.pyo", line 349, in call
      File "rpc.pyo", line 170, in rpc_exec_auth
      File "rpc.pyo", line 113, in exec_auth
      File "rpc.pyo", line 119, in execute
      File "tiny_socket.pyo", line 81, in myreceive
    tiny_socket.Myexception: ('warning -- Integrity Error\n\nnull value in column "categ_id" violates not-null constraint\nCONTEXT:  SQL statement "UPDATE ONLY "public"."product_template" SET "categ_id" = NULL WHERE $1 OPERATOR(pg_catalog.=) "categ_id""\n', 'Traceback (most recent call last):\n  File "netsvc.pyo", line 256, in dispatch\n  File "netsvc.pyo", line 76, in call\n  File "service\web_services.pyo", line 577, in execute\n  File "osv\osv.pyo", line 70, in wrapper\n  File "netsvc.pyo", line 61, in abortResponse\nException: warning -- Integrity Error\n\nnull value in column "categ_id" violates not-null constraint\nCONTEXT:  SQL statement "UPDATE ONLY "public"."product_template" SET "categ_id" = NULL WHERE $1 OPERATOR(pg_catalog.=) "categ_id""\n\n')

    原因是当product.product记录删除后,product.template并没有跟着删除
    附修复记录的脚本,请在执行时先做好备份,本人不对该脚本产生的任何后果负责。

    <br /># -*- encoding: utf-8 -*-<br />#修复删除产品后product.template记录没有删除的数据<br /><br />import xmlrpclib&nbsp; #导入xmlrpc库,这个库是python的标准库。<br />#dbname = raw_input(u&quot;输入帐套:\n&quot;)<br />dbname = &#039;xxxxxx&#039;<br />username =&#039;admin&#039; #用户登录名<br />pwd = &#039;xxxxxxx&#039; #用户的登录密码,测试时请换成自己的密码<br /><br /># 第一步,取得uid<br />sock_common = xmlrpclib.ServerProxy (&#039;http://127.0.0.1:8069/xmlrpc/common&#039;)<br />uid = sock_common.login(dbname, username, pwd)<br />sock = xmlrpclib.ServerProxy(&#039;http://127.0.0.1:8069/xmlrpc/object&#039;)<br /><br />p_ids = sock.execute(dbname, uid, pwd, &#039;product.product&#039;, &#039;search&#039;,&#91;],0,20000,&#039;id&#039;)<br />print p_ids<br />vals = sock.execute(dbname, uid, pwd,&#039;product.product&#039;, &#039;read&#039;, p_ids,&#91;&#039;id&#039;,&#039;name&#039;,&#039;product_tmpl_id&#039;])<br />t_idok=&#91;]<br />for v in vals:<br />&nbsp; &nbsp; t_idok.append(v&#91;&#039;product_tmpl_id&#039;][0])<br />print u&#039;product_tmpl_id 列表&#039;<br />print t_idok<br /><br />del_t=sock.execute(dbname, uid, pwd, &#039;product.template&#039;, &#039;search&#039;,[(&#039;id&#039;,&#039;not in&#039;,t_idok)])<br />ok_t=sock.execute(dbname, uid, pwd, &#039;product.template&#039;, &#039;search&#039;,[(&#039;id&#039;,&#039;in&#039;,t_idok)])<br />print &#039;正常的 product_tmpl_id 列表&#039;<br />print ok_t<br />print &#039;不存在的 product_tmpl_id 列表-&#039;<br />print del_t<br />sock.execute(dbname, uid, pwd, &#039;product.template&#039;, &#039;unlink&#039;,del_t)<br />print u&quot;设置完成&quot;<br /><br />
    



    修复记录不是最终的解决方案,请哪位大虾提供下修复的方案!!!

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

      最简单的莫过于 去数据库里, 修改  product_template 表结构 中的 categ_id 字段 把"非空"的勾选去掉...

      或者修改  addons\product\product.py 文件中 product.template 对象的 categ_id 字段的 required="True" 去掉, 或者改为 "False" 然后 重新更新模块(是否更新有效, 需要小白鼠测试")

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

        为什么OE在删除product.product的记录时不一起删掉product.template中的记录,难道product.template中的记录要永久保存?

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

          嗯. 这个应该是系统BUG了... 不知道官方有没有人报出来

          1 条回复 最后回复
          0

          • 登录

          • 没有帐号? 注册

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