【发布时间】:2013-01-28 15:49:13
【问题描述】:
我希望能够在 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/ )。
在这种情况下,我希望能够在我的事件的 DetailView 上有一个删除按钮,该按钮重定向回用户导航的 ListView。
我考虑过:
- 如果它是我的 URLconf 中的 ListView,它将查看以前的 URL 并将其添加到会话中的中间件。这有几个缺点,其中之一是需要将可以单击 Event 的 DetailView 的每个可能位置列入白名单。
- 在 DetailView 上的删除按钮上,将
?next={{ request.META.HTTP_REFER }}附加到 DeleteView 的 URL 并以某种方式将其添加到删除表单中,但会传递整个引用者的 URL(例如 /events/53/delete/?next=www.site. com/events/year/2013/)。
【问题讨论】: