首页 > 解决方案 > 自动操作阻止网站表单 POST --> 内部服务器错误 500

问题描述

语境

我正在尝试将现有标签分配给由放置在我们网站各个位置的表单创建的潜在客户。所有表格都直接在 CRM Leads 部分中创建机会。我创建了一个自动操作,它查找与表单正文一起发送的隐藏哈希。

该操作在域中的“潜在客户/机会”模型的“创建时”触发:

["&","&",["type","=","lead"],["create_uid","=","OdooBot"],["medium_id","=","Website"]]

执行代码:

    for rec in records:
      if 'E7EC0291' in rec.description:         # Home CRC-32
        rec.write({'tag_ids': [(4, 7)]})        # Tag: 'WWW: Home'
      elif '5D114F08' in rec.description:       # Contact Us CRC-32
        rec.write({'tag_ids': [(4, 8)]})        # Tag: 'WWW: Contact'
      elif '962B6094' in rec.description:       # Strona z wyceną CRC-32
        rec.write({'tag_ids': [(4, 9)]})        # Tag: 'WWW: Quote'

整个自动化操作看起来像这样(我知道,在这个屏幕截图中它处于非活动状态 - 现在,它在活动时会破坏网站)。

问题

虽然 Python 代码工作得很好(它在手动执行时工作),但我无法让这个该死的东西按设计开始工作:'On Creation'。当此操作设置为“活动”时,应该触发它的所有表单都将停止工作,抛出错误并且浏览器控制台告诉我,代码 500(内部服务器错误)已返回。看来,500 条消息中最重要的部分是:

Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/tools/safe_eval.py", line 354, in safe_eval
    return unsafe_eval(c, globals_dict, locals_dict)
  File "", line 14, in <module>
TypeError: argument of type 'bool' is not iterable

几次试验之后,我确信这与尝试在刚刚创建的记录上写()有关。但这就是我去的地方。运行 Python 代码(及其变体)而不是自动操作(以及更改条件)可以快速运行。

提前感谢您提供任何导致解决方案的线索。提示如何正确调试它也会很棒。

PS我相信硬编码标签的ID也不是一个好主意。感谢所有的帮助!

标签: odooodoo-13

解决方案


推荐阅读