我希望能够在Django 1.5c1中使用DeleteView CBV(包括确认页面),但是可以将用户重定向到他/她点击对象的位置。
例如,以下是基于事件的网站结构的大致轮廓:
/events/week/2013/03/ - ListView, shows 3rd week of 2013's Events
/events/month/2013/01/ - ListView, shows January of 2013's Events
/events/year/2013/ - ListView, show 2013's Events
/events/53/ - DetailView, shows a specific Event
在任何这些活动列表中,我都可以看到所有活动。而不是让事件的URL取决于用户导航的列表(例如/ events / year / 2013/53 /),我选择让事件在独立的URL上提供(例如/ events / 53 / )。
在上下文中,我希望能够在我的Event的DetailView上有一个删除按钮,该按钮会重定向回用户导航的ListView。
我考虑过:
?next={{ request.META.HTTP_REFER }}
附加到DeleteView的URL并以某种方式将其添加到删除表单中,但传递整个引用者的URL(例如/ events / 53 / delete /?next = www。 site.com/events/year/2013 /).答案 0 :(得分:1)
尝试这样的东西作为mixin:
class RedirectURLView(View):
def get_success_url(self):
next_url = self.request.GET.get('next')
if next_url:
return next_url
else:
return super(RedirectURLView, self).get_success_url()
然后将?next={{ request.path }}
附加到网址