【问题标题】:Where does the function end to add success message/send email - Django/Python添加成功消息/发送电子邮件的功能在哪里结束 - Django/Python
【发布时间】:2015-05-20 15:23:54
【问题描述】:

在此视图中,我想添加一条成功消息以完成删除,并通过电子邮件向所有者发送删除通知。

我是用别人的这个代码,所以不太熟悉。

在这段代码中我应该在哪里插入成功消息和“send_mail”函数?同样,我想在函数成功的地方插入它,但就在重定向发生之前。

谢谢!

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)

【问题讨论】:

    标签: python django email django-models django-views


    【解决方案1】:

    覆盖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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      • 2021-07-25
      相关资源
      最近更新 更多