Odoo - 集成Google日历时的Python异常

时间:2018-01-17 16:11:41

标签: python exception google-calendar-api odoo python-dateutil

在整合Google Calendar模块并允许API访问后,我在将odoo日历与google日历同步时遇到了问题。

单击odoo日历上的synch按钮

后,会出现以下异常
    File "/opt/odoo/addons/calendar/calendar.py", line 1328, in _parse_rrule
data['day'] = r._bymonthday[0]

TypeError: 'set' object does not support indexing

我使用的odoo版本是v9

1 个答案:

答案 0 :(得分:-1)

重要观察:

这种情况对于odoo 9是特殊的,从那时起它就被修复了。因此,如果您能够将数据从当前版本迁移到以后的版本,那么问题就不会出现问题。否则,请仔细遵循以下答案。

1。解释

引发的异常可能是由于安装了python-dateutil的版本。

python-dateutil的{​​{1}}(和更高版本)版本中的某些属性类型已从2.4.x修改为list。一个好主意是将set版本从当前版本降级到python-dateutil,其中属性具有与同步相同的预期类型。

在odoo的官方论坛上已经提出并回答了这个问题。您可以访问this link

2。溶液

要解决此问题,您应该按照以下步骤操作:

  1. 查看2.2的当前版本
  2. dateutil版本降级为dateutil(如果适用)
  3. 确保模块降级
  4. 重启odoo服务器
  5. 测试Google日历同步
  6. 这些步骤详述如下:

    <强> 2.1。查看2.2版本

    转到机器的命令提示符(终端),无论操作系统是什么,然后输入以下命令:

    dateutil

    如果版本为$ python >>> import dateutil >>> dateutil.__version__ ,则输出为:

    2.4

    <强> 2.2。将'2.4.0' 版本降级为dateutil

    您最好在机器中安装2.2,以便输入:

    pip

    这会自动卸载当前版本并改为安装$ pip install python-dateutil==2.2

    <强> 2.3。确保模块降级

    完成步骤 2.1 并确保输出为:

    2.2

    <强> 2.4。重启odoo服务器

    如果您已将odoo作为服务安装,则可以按如下方式重新启动:

    '2.2.0'
    

    或(对于Windows):

    service odoo-server restart
    

    否则,您必须sc start odoo-server 正在运行odoo服务器的进程(根据使用的操作系统),然后转到kill(或odoo.py for odoo {找到{1}})并再次运行它。 (不建议这样做,最好将其作为服务运行)

    <强> 2.5。测试谷歌日历同步

    转到odoo,打开odoo-bin应用程序,然后点击>= 10.0按钮即可。