Как создать объект при подтверждении удаления в DeleteView в Django

В Django 3 я хочу удалить объект и после подтверждения пользователем удаления создать несвязанный объект. Код, который я написал ниже, создает несвязанный объект, как только пользователь нажимает кнопку "delete", но до того, как пользователь подтвердит удаление. Я хочу, чтобы несвязанный объект создавался после подтверждения удаления.

class PromoteQuestionToMeta(DeleteView):
    model = QuestionList
    fields = []

    template_name = 'search/questionlist_confirm_delete.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)

        questionlist_object = self.object
        MetaQuestionList.objects.create(question=questionlist_object.question, created_by=questionlist_object.created_by)

        return context

    def get_success_url(self):
        return reverse_lazy('home:home')

Вы можете переопределить метод .delete(…) [Django-doc] и создать объект:

class PromoteQuestionToMeta(DeleteView):
    model = QuestionList
    fields = []
    template_name = 'search/questionlist_confirm_delete.html'

    def delete(self, *args, **kwargs):
        result = super().delete(*args, **kwargs)
        MetaQuestionList.objects.create(
            question=self.object.question,
            created_by=self.object.created_by
        )
        return result

    def get_success_url(self):
        return reverse_lazy('home:home')
Вернуться на верх