python - 如何在自定义 DeleteView 中重定向到上一页?
问题描述
我有以下习惯DeleteView
:
class CarDeleteView(LoginRequiredMixin, DeleteView):
model = Car
context_object_name = 'car'
template_name = 'cars/car_confirm_delete.html'
success_message = "%(name)s is pending removal"
def get_success_url(self):
return reverse('car-list')
def delete(self, request, *args, **kwargs):
self.object = self.get_object()
name = self.object.name
owner = self.object.owner
if owner != self.request.user:
messages.error(request, f'You don\'t have permissions to remove {name}')
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
# DO Stuff
return redirect(reverse('car-list'))
当用户不是所有者时,我试图重定向到上一个入口点(因此他无法删除)。但HttpResponseRedirect(request.META.get('HTTP_REFERER'))
给了我当前页面的 URL ( car_confirm_delete.html
) 而不是上一个页面。我怎样才能让它转到上一个?也许那是因为 Django 做 POST?
解决方案
您需要导入 HttpResponseRedirect
从 django.http 导入 HttpResponseRedirect
接着
返回 HttpResponseRedirect(request.META.get('HTTP_REFERER'))
推荐阅读
- c# - 在 c# 中使用 MVVM (Model-View-ViewModel) 的 WPF OpenFileDialog
- javascript - 为什么这个 JS 函数返回错误的日期?
- excel - 如何借助 Excel 中的宏删除特定字符串
- django - 从 django 管理页面重新启动服务的选项
- c++ - 关于别名模板
- sql-server - 与 SQL Server 连接执行期间 vb.net 中的登录错误
- c++ - C++ 使用 qfile 写入资源文件(QIODevice::write (QFile,"x"): device not open)
- twitter-bootstrap - Bootstrap 4 Dropdown Navbar 使用 Plus 和 Minus Fontawesome 5 更改插入符号
- elasticsearch - Elasticsearch - 使用通配符的自定义词干覆盖
- asp.net-mvc - 如何使用 Unity 将依赖项注入 MVC 操作