添加成功消息/发送电子邮件Django/Python的函数在哪里结束

2024-06-02 08:43:25 发布

您现在位置:Python中文网/ 问答频道 /正文

在这个视图中,我想添加一个成功的消息来完成删除,以及用电子邮件通知所有者删除。你知道吗

我使用的是别人的代码,所以我不太熟悉。你知道吗

在此代码中,我将在何处插入成功消息和“发送邮件”功能?同样,我想在函数成功的地方插入它,但是就在重定向发生之前。你知道吗

谢谢你!你知道吗

class DeleteEventView(DeleteView):
    template_name = 'schedule/delete_event.html'
    pk_url_kwarg = 'event_id'
    model = Event

    def get_context_data(self, **kwargs):
        ctx = super(DeleteEventView, self).get_context_data(**kwargs)
        ctx['next'] = self.get_success_url()
        return ctx

    def get_success_url(self):
        """
        After the event is deleted there are three options for redirect, tried in
        this order:

        # Try to find a 'next' GET variable
        # If the key word argument redirect is set
        # Lastly redirect to the event detail of the recently create event
        """
        next = self.kwargs.get('next') or reverse('day_calendar', args=[self.object.calendar.slug])
        next = get_next_url(self.request, next)
        return next

    ## Override dispatch to apply the permission decorator
    @method_decorator(login_required)
    @method_decorator(check_event_permissions)
    def dispatch(self, request, *args, **kwargs):
        return super(DeleteEventView, self).dispatch(request, *args, **kwargs)

Tags: thetoselfeventurlgetreturnrequest
1条回答
网友
1楼 · 发布于 2024-06-02 08:43:25

重写delete()方法:

from django.contrib import messages

class DeleteEventView(DeleteView):
    ...
    def delete(self, request, *args, **kwargs):
        response = super(DeleteEventView, self).delete(request,
                                                       *args, **kwargs)
        deleted_event = self.object
        messages.success(request, 'Event %s deleted.' % deleted_event)
        return response

相关问题 更多 >