После наследования абстрактной модели «mail.activity.mixin» родительская модель «crm.lead» не может сохранить данные - PullRequest
0 голосов
/ 07 апреля 2020

Я создал новый класс для наследования абстрактной модели 'mail.activity.mixin', но после использования родительского класса crm.lead не может хранить данные. Я не мог этого сделать. Может кто-нибудь, пожалуйста, скажите мне, как я могу это сделать. Вот мой код

class forcaMailMixin(models.AbstractModel):
    _inherit = 'mail.activity.mixin'

    @api.multi
    def write(self, vals):
        check_undone = self.env['mail.activity'].sudo().search(
                        [('res_model', '=', self._name), ('res_id', 'in', self.ids), ('status', '!=', 1)] ,order = 'create_date desc', limit=1)
        if check_undone :
            value = {
                'activity_date_deadline' : check_undone.date_deadline,
                'activity_summary' : check_undone.summary
            }
        else :
             value = {
                'activity_date_deadline' : "",
                'activity_summary' : ""
            }
        return super(forcaMailMixin, self).write(value)

1 Ответ

0 голосов
/ 08 апреля 2020

Вы перезаписали значения записи. Таким образом, исходные значения никогда не попадают в супер-вызовы, где происходит волхв c (запись в дб).

Поэтому вы должны обновить исходные значения непосредственно перед супер-вызовом в конце:

vals.update(value)
return super(forcaMailMixin, self).write(vals)
...