我使用状态栏扩展了类calendar_event以添加状态。当我更新活动时,它的工作非常完美,但当我试图创建一个问题时
Traceback (most recent call last): File "/home/x/workspace/Odoo8/openerp/http.py", line 530, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/home/x/workspace/Odoo8/openerp/http.py", line 567, in dispatch result = self._call_function(**self.params) File "/home/x/workspace/Odoo8/openerp/http.py", line 303, in _call_function return checked_call(self.db, *args, **kwargs) File "/home/x/workspace/Odoo8/openerp/service/model.py", line 113, in wrapper return f(dbname, *args, **kwargs) File "/home/x/workspace/Odoo8/openerp/http.py", line 300, in checked_call return self.endpoint(*a, **kw) File "/home/x/workspace/Odoo8/openerp/http.py", line 796, in __call__ return self.method(*args, **kw) File "/home/x/workspace/Odoo8/openerp/http.py", line 396, in response_wrap response = f(*args, **kw) File "/home/x/workspace/alpbureautique_openerp/openerp/addons/web/controllers/main.py", line 949, in call_kw return self._call_kw(model, method, args, kwargs) File "/home/x/workspace/alpbureautique_openerp/openerp/addons/web/controllers/main.py", line 941, in _call_kw return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) File "/home/x/workspace/Odoo8/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/home/x/workspace/alpbureautique_openerp/openerp/cap_addons/cap_CRM/models/calendar_event.py", line 66, in create res = super(calendar_event, self).create(cr, uid, vals, context=context) File "/home/x/workspace/Odoo8/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/home/x/workspace/alpbureautique_openerp/openerp/addons/crm/calendar_event.py", line 36, in create res = super(calendar_event, self).create(cr, uid, vals, context=context) File "/home/x/workspace/Odoo8/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py", line 1646, in create res = super(calendar_event, self).create(cr, uid, vals, context=context) File "/home/x/workspace/Odoo8/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/home/x/workspace/alpbureautique_openerp/openerp/addons/mail/mail_thread.py", line 377, in create thread_id = super(mail_thread, self).create(cr, uid, values, context=context) File "/home/x/workspace/Odoo8/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/home/x/workspace/Odoo8/openerp/api.py", line 336, in old_api result = method(recs, *args, **kwargs) File "/home/x/workspace/Odoo8/openerp/models.py", line 4042, in create record = self.browse(self._create(old_vals)) File "/home/x/workspace/Odoo8/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/home/x/workspace/Odoo8/openerp/api.py", line 462, in new_api result = method(self._model, cr, uid, *args, **kwargs) File "/home/x/workspace/Odoo8/openerp/models.py", line 4214, in _create recs.modified(self._fields) File "/home/x/workspace/Odoo8/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/home/x/workspace/Odoo8/openerp/models.py", line 5608, in modified spec += self._fields[fname].modified(self) File "/home/x/workspace/Odoo8/openerp/fields.py", line 1414, in modified spec = super(_Relational, self).modified(records) File "/home/x/workspace/Odoo8/openerp/fields.py", line 908, in modified target = env[field.model_name].search([(path, 'in', records.ids)]) File "/home/x/workspace/Odoo8/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/home/x/workspace/Odoo8/openerp/api.py", line 462, in new_api result = method(self._model, cr, uid, *args, **kwargs) File "/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py", line 1511, in search res = self.get_recurrent_ids(cr, uid, res, args, order=order, context=context) File "/home/x/workspace/Odoo8/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py", line 1187, in get_recurrent_ids result_data.append(self.get_search_fields(ev, order_fields)) File "/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py", line 1155, in get_search_fields sort_fields['sort_start'] = browse_event['display_start'].replace(' ', '').replace('-', '') AttributeError: 'bool' object has no attribute 'replace'
当我通过super()调用create()并且它与字段" participant_without_owner"
的链接时,会出现此错误。我的代码:
class calendar_event(osv.Model): _inherit = 'calendar.event' _columns = { 'cap_state':fields.selection( [('open', 'Confirmed'), ('cancel', 'Cancelled'), ('pending', 'Pending'), ('done', 'Held') ], string='Status', track_visibility='onchange', help='The status is set to Confirmed, when a case is created.\n' 'When the call is over, the status is set to Held.\n' 'If the callis not applicable anymore, the status can be set to Cancelled.'), 'participant_without_owner':fields.char(compute="_compute_participant",store=True), } _default = { 'cap_state':'open' } @api.depends('partner_ids', 'user_id') def _compute_participant(self): for record in self: if record.user_id.partner_id in record.partner_ids: participants = record.partner_ids - record.user_id.partner_id chaine = str("") for p in participants: 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'}, context) return res def create(self,cr, uid, vals, context=None): import datetime as dt if context is None: context = {} date_appel = datetime.strptime(vals['start_datetime'], '%Y-%m-%d %H:%M:%S') print type(date_appel) print type(dt.datetime.today()) if date_appel > dt.datetime.today(): vals['cap_state'] = 'open' else: vals['cap_state'] = 'done' vals['participant_without_owner'] = "" print vals res = super(calendar_event, self).create(cr, uid, vals, context=context) return res
在odoo v8中
答案 0 :(得分:0)
您的字段是否用于' display_start'在您的视图上有您的模型的默认值?
我认为这是因为它为此字段返回False您有此错误。如果它今天返回,我认为它会没问题。