0

ステータスバーでステータスを追加するために、クラス calendar_event を拡張します。イベントを更新すると完全に機能しますが、作成しようとすると問題が発生します:

    トレースバック (最新の呼び出しが最後):
      ファイル "/home/x/workspace/Odoo8/openerp/http.py"、530 行目、_handle_exception 内
        super(JsonRequest, self)._handle_exception(例外) を返す
      ファイル「/home/x/workspace/Odoo8/openerp/http.py」、行 567、ディスパッチ
        結果 = self._call_function(**self.params)
      ファイル "/home/x/workspace/Odoo8/openerp/http.py"、303 行目、_call_function 内
        return checked_call(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 内
        return self.endpoint(*a, **kw)
      ファイル "/home/x/workspace/Odoo8/openerp/http.py"、796 行目、__call__ 内
        return 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 行目、ラッパー
        return 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 行目、ラッパー
        return 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 行目、ラッパー
        return 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 行目、ラッパー
        return 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 行目、ラッパー
        return 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 行目、ラッパー
        return new_api(self, *args, **kwargs)
      ファイル「/home/x/workspace/Odoo8/openerp/api.py」、462 行目、new_api 内
        結果 = メソッド (self._model, cr, uid, *args, **kwargs)
      ファイル「/home/x/workspace/Odoo8/openerp/models.py」、4214 行目、_create 内
        recs.modified(self._fields)
      ファイル「/home/x/workspace/Odoo8/openerp/api.py」、239 行目、ラッパー
        return new_api(self, *args, **kwargs)
      ファイル「/home/x/workspace/Odoo8/openerp/models.py」、行 5608、変更済み
        spec += self._fields[fname].modified(self)
      ファイル「/home/x/workspace/Odoo8/openerp/fields.py」の 1414 行を修正
        spec = super(_Relational, self).modified(レコード)
      ファイル「/home/x/workspace/Odoo8/openerp/fields.py」、行 908、修正済み
        target = env[field.model_name].search([(path, 'in', records.ids)])
      ファイル「/home/x/workspace/Odoo8/openerp/api.py」、239 行目、ラッパー
        return 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 行目、ラッパー
        return 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: 'bool' オブジェクトには属性 'replace' がありません

このエラーは、super() によって create() を呼び出したときに発生し、フィールド「participant_without_owner」とのリンクです

私のコード:

    クラス calendar_event(osv.Model):
        _inherit = 'calendar.event'

        _列 = {       
                    'cap_state':fields.selection(
                                    [(「オープン」、「確認済み」)、
                                     (「キャンセル」、「キャンセル」)、
                                     (「保留中」、「保留中」)、
                                     (「完了」、「保留」)
                                     ], string='ステータス', track_visibility='onchange',
                                    help='ケースが作成されると、ステータスは [確認済み] に設定されます。\n'
                                         「通話が終了すると、ステータスは保留に設定されます。\n」
                                         '通話が適用されなくなった場合、ステータスをキャンセル済みに設定できます。'),
                    'participant_without_owner':fields.char(compute="_compute_participant",store=True),

                }

        _デフォルト = {
                    'cap_state':'open'
                }


        @api.depends('partner_ids', 'user_id')
        def _compute_participant (自己):
            自己記録用:
                record.partner_ids の record.user_id.partner_id の場合:
                    参加者 = record.partner_ids - record.user_id.partner_id
                    chaine = str("")
                    参加者の p の場合:
                        chaine = chaine + p.name + ", "

                    record.participant_without_owner = chaine



        def done_event_in_tree (自己、cr、uid、ids、コンテキスト = なし):
            res = self.write(cr, uid, ids, {'cap_state': 'done'}, context)
            解像度を返す


        def create (self、cr、uid、vals、context=None):
            日時を dt としてインポート

            コンテキストが None の場合:
                コンテキスト = {}      

            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 に答える