0

我扩展了类 calendar_event 以使用状态栏添加状态。当我更新一个事件时它工作得很好但是当我尝试创建我有一个问题时:

    回溯(最近一次通话最后):
      _handle_exception 中的文件“/home/x/workspace/Odoo8/openerp/http.py”,第 530 行
        return super(JsonRequest, self)._handle_exception(exception)
      文件“/home/x/workspace/Odoo8/openerp/http.py”,第 567 行,在调度中
        结果 = self._call_function(**self.params)
      _call_function 中的文件“/home/x/workspace/Odoo8/openerp/http.py”,第 303 行
        返回检查调用(self.db,*args,**kwargs)
      包装器中的文件“/home/x/workspace/Odoo8/openerp/service/model.py”,第 113 行
        返回 f(dbname, *args, **kwargs)
      文件“/home/x/workspace/Odoo8/openerp/http.py”,第 300 行,在 checked_call 中
        返回 self.endpoint(*a, **kw)
      __call__ 中的文件“/home/x/workspace/Odoo8/openerp/http.py”,第 796 行
        返回 self.method(*args, **kw)
      文件“/home/x/workspace/Odoo8/openerp/http.py”,第 396 行,在 response_wrap
        响应 = f(*args, **kw)
      文件“/home/x/workspace/alpbureautique_openerp/openerp/addons/web/controllers/main.py”,第 949 行,在 call_kw
        return self._call_kw(模型,方法,参数,kwargs)
      文件“/home/x/workspace/alpbureautique_openerp/openerp/addons/web/controllers/main.py”,第 941 行,在 _call_kw
        return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
      文件“/home/x/workspace/Odoo8/openerp/api.py”,第 241 行,在包装器中
        返回 old_api(self, *args, **kwargs)
      创建文件“/home/x/workspace/alpbureautique_openerp/openerp/cap_addons/cap_CRM/models/calendar_event.py”,第 66 行
        res = super(calendar_event, self).create(cr, uid, vals, context=context)
      文件“/home/x/workspace/Odoo8/openerp/api.py”,第 241 行,在包装器中
        返回 old_api(self, *args, **kwargs)
      文件“/home/x/workspace/alpbureautique_openerp/openerp/addons/crm/calendar_event.py”,第 36 行,在创建
        res = super(calendar_event, self).create(cr, uid, vals, context=context)
      文件“/home/x/workspace/Odoo8/openerp/api.py”,第 241 行,在包装器中
        返回 old_api(self, *args, **kwargs)
      创建文件“/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py”,第 1646 行
        res = super(calendar_event, self).create(cr, uid, vals, context=context)
      文件“/home/x/workspace/Odoo8/openerp/api.py”,第 241 行,在包装器中
        返回 old_api(self, *args, **kwargs)
      文件“/home/x/workspace/alpbureautique_openerp/openerp/addons/mail/mail_thread.py”,第 377 行,在创建中
        thread_id = super(mail_thread, self).create(cr, uid, values, context=context)
      文件“/home/x/workspace/Odoo8/openerp/api.py”,第 241 行,在包装器中
        返回 old_api(self, *args, **kwargs)
      文件“/home/x/workspace/Odoo8/openerp/api.py”,第 336 行,在 old_api
        结果 = 方法(recs,*args,**kwargs)
      文件“/home/x/workspace/Odoo8/openerp/models.py”,第 4042 行,在创建中
        记录 = self.browse(self._create(old_vals))
      文件“/home/x/workspace/Odoo8/openerp/api.py”,第 239 行,在包装器中
        返回 new_api(self, *args, **kwargs)
      文件“/home/x/workspace/Odoo8/openerp/api.py”,第 462 行,在 new_api
        结果 = 方法(self._model,cr,uid,*args,**kwargs)
      _create 中的文件“/home/x/workspace/Odoo8/openerp/models.py”,第 4214 行
        recs.modified(self._fields)
      文件“/home/x/workspace/Odoo8/openerp/api.py”,第 239 行,在包装器中
        返回 new_api(self, *args, **kwargs)
      文件“/home/x/workspace/Odoo8/openerp/models.py”,第 5608 行,已修改
        规范 += self._fields[fname].modified(self)
      文件“/home/x/workspace/Odoo8/openerp/fields.py”,第 1414 行,已修改
        规范 = 超级(_Relational,自我).modified(记录)
      文件“/home/x/workspace/Odoo8/openerp/fields.py”,第 908 行,已修改
        目标 = env[field.model_name].search([(path, 'in', records.ids)])
      文件“/home/x/workspace/Odoo8/openerp/api.py”,第 239 行,在包装器中
        返回 new_api(self, *args, **kwargs)
      文件“/home/x/workspace/Odoo8/openerp/api.py”,第 462 行,在 new_api
        结果 = 方法(self._model,cr,uid,*args,**kwargs)
      文件“/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py”,第 1511 行,正在搜索中
        res = self.get_recurrent_ids(cr, uid, res, args, order=order, context=context)
      文件“/home/x/workspace/Odoo8/openerp/api.py”,第 241 行,在包装器中
        返回 old_api(self, *args, **kwargs)
      文件“/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py”,第 1187 行,在 get_recurrent_ids
        result_data.append(self.get_search_fields(ev, order_fields))
      文件“/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py”,第 1155 行,在 get_search_fields
        sort_fields['sort_start'] = browse_event['display_start'].replace(' ', '').replace('-', '')
    AttributeError:“布尔”对象没有“替换”属性

当我通过 super() 调用 create() 并且它与字段“participant_without_owner”链接时会引发此错误

我的代码:

    类日历事件(osv.Model):
        _inherit = '日历.事件'

        _columns = {       
                    'cap_state':fields.selection(
                                    [('打开','确认'),
                                     ('取消', '取消'),
                                     ('待定', '待定'),
                                     ('完成','举行')
                                     ], string='状态', track_visibility='onchange',
                                    help='创建案例时,状态设置为已确认。\n'
                                         '通话结束后,状态设置为保持。\n'
                                         '如果呼叫不再适用,可以将状态设置为已取消。'),
                    'participant_without_owner':fields.char(compute="_compute_participant",store=True),

                }

        _default = {
                    'cap_state':'打开'
                }


        @api.depends('partner_ids', 'user_id')
        def _compute_participant(self):
            自我记录:
                如果record.partner_ids中的record.user_id.partner_id:
                    参与者 = record.partner_ids - record.user_id.partner_id
                    链式 = str("")
                    对于参与者中的 p:
                        chaine = chaine + p.name + ", "

                    record.participant_without_owner = chaine



        def done_event_in_tree(self, cr, uid, ids, context=None):
            res = self.write(cr, uid, ids, {'cap_state': 'done'}, 上下文)
            返回资源


        def create(self,cr, uid, vals, context=None):
            将日期时间导入为 dt

            如果上下文为无:
                上下文 = {}      

            date_appel = datetime.strptime(vals['start_datetime'], '%Y-%m-%d %H:%M:%S')
            打印类型(date_appel)
            打印类型(dt.datetime.today())
            如果 date_appel > dt.datetime.today():
                vals['cap_state'] = 'open'    
            别的:
                vals['cap_state'] = '完成'   

            vals['participant_without_owner'] = ""

            打印值

            res = super(calendar_event, self).create(cr, uid, vals, context=context)
            返回资源  

在 odoo v8 中

4

1 回答 1

0

您的视图上用于“display_start”的字段是否在您的模型上有默认值?

我认为这是因为它为该字段返回 False 你有这个错误。如果它今天回来,我想它会没事的。

于 2015-04-27T09:15:43.667 回答