Поместите имя пользователя в change_reason при удалении с помощью SafeDeleteModel

Я использую django-simple-history и SafeDeleteModel

< <

Однако имя удалителя не хранится в _change_reason

и каким-то образом override delete is called вызывается дважды.

stdout выглядит так, второй call не имеет идентификатора пользователя.

delete override:{"user": 12}
delete override:None

Как я могу его сделать?

class BaseModel(AuditableModel, SafeDeleteModel):

    _safedelete_policy = SOFT_DELETE_CASCADE
    objects = DeletedInvisiableManager()

    class Meta:
        abstract = True

    def save(self, operator: str = None, **kwargs):

        self._change_reason = operator
        return super().save(**kwargs)

    def delete(self,operator: str = None,**kwargs):
        print("override delete is called {0}".format(operator))
        self._change_reason = operator
        return super().delete(**kwargs)

Отсюда вызывается функция удаления.

class MyObjDeleteView(LoginRequiredMixin, DeleteView):
    model = MyObj
    success_url = reverse_lazy('my-obj-list')
    def delete(self,request, *args, **kwargs):
        self.object = self.get_object()
        success_url = self.get_success_url()
        self.object.delete(get_operator_from_user(self.request.user))
        return HttpResponseRedirect(success_url) 
Вернуться на верх