odoo-8 - 属性错误:“str”对象没有属性“dbname”
问题描述
我创建了一个新模块来重写 server\openerp\modules.py 中的 _read_group_process_groupby 方法并添加按小时分组选项,但我收到此错误:
我的模块 \addons-custom\my_group_hours\models\models.py 的方法如下
@api.model
def _read_group_process_groupby(self, gb, query, context):
split = gb.split(':')
field_type = self._fields[split[0]].type
gb_function = split[1] if len(split) == 2 else None
temporal = field_type in ('date', 'datetime')
tz_convert = field_type == 'datetime' and context.get('tz') in pytz.all_timezones
qualified_field = self._inherits_join_calc(self._table, split[0], query)
if temporal:
display_formats = {
'hour': 'HH:mm dd MMM yyyy',
'day': 'dd MMM yyyy',
'week': "'W'w YYYY",
'month': 'MMMM yyyy',
'quarter': 'QQQ yyyy',
'year': 'yyyy',
}
time_intervals = {
'hour': dateutil.relativedelta.relativedelta(hours=1),
'day': dateutil.relativedelta.relativedelta(days=1),
'week': datetime.timedelta(days=7),
'month': dateutil.relativedelta.relativedelta(months=1),
'quarter': dateutil.relativedelta.relativedelta(months=3),
'year': dateutil.relativedelta.relativedelta(years=1)
}
if tz_convert:
qualified_field = "timezone('%s', timezone('UTC',%s))" % (context.get('tz', 'UTC'), qualified_field)
qualified_field = "date_trunc('%s', %s)" % (gb_function or 'month', qualified_field)
if field_type == 'boolean':
qualified_field = "coalesce(%s,false)" % qualified_field
return {
'field': split[0],
'groupby': gb,
'type': field_type,
'display_format': display_formats[gb_function or 'month'] if temporal else None,
'interval': time_intervals[gb_function or 'month'] if temporal else None,
'tz_convert': tz_convert,
'qualified_field': qualified_field
}
models.BaseModel._read_group_process_groupby = _read_group_process_groupby
解决方案
@api.model
用于向旧 API 公开新式方法。
当您的方法被调用时,gb
传递为cr
并导致:
AttributeError: 'str' object has no attribute 'dbname'
你只需要删除装饰器。
推荐阅读
- android - 在活动销毁时保存 Countdowntimer 并在 onResume() 中恢复它
- sql-server - 如何从“使用输出子句更新”查询返回不同的结果
- php - 讨论网站上加好友日期有必要吗?
- python - 使用 python 中的共享访问签名 (SAS) 访问 blob
- node.js - Node selenium web driver URL loop is not working
- parsing - Can I send cross package notification for android app
- html - 如何防止图像加载时内容跳转?
- python-3.x - python程序不需要的输出
- android - Bound Service vs Unbound + singleton 进行通信
- ubuntu - rustup 在下载过程中安装稳定错误