函数在哪里结束添加成功message/send email - Django/Python
Where does the function end to add success message/send email - Django/Python
在此视图中,我想添加完成删除的成功消息,并通过电子邮件向所有者发送删除通知。
我正在使用别人的代码,所以我不太熟悉它。
在此代码中,我应该在何处插入成功消息和 "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)
覆盖 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
在此视图中,我想添加完成删除的成功消息,并通过电子邮件向所有者发送删除通知。
我正在使用别人的代码,所以我不太熟悉它。
在此代码中,我应该在何处插入成功消息和 "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)
覆盖 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