django - 当数据库内容删除时,如何使用 url 参数传递方法重定向到同一页面?
问题描述
我想在删除后删除数据库 content.bt utl 转到http://127.0.0.1:8004/login/delete_detail/6/ ..我如何重定向到success.html,即在同一页面中
class DeleteView(generic.TemplateView):
template_name = 'success.html'
success_url='/login/success'
def get_context_data(self, *args, **kwargs):
context = super(DeleteView,self).get_context_data(**kwargs)
did = self.kwargs['did']
q_obj = Quest.objects.filter(id=did)
q_obj.delete()
解决方案
您可以使用get_success_url
方法:
from django.urls import reverse_lazy
class DeleteView(generic.TemplateView):
template_name = 'success.html'
success_url='/login/success'
def get_context_data(self, *args, **kwargs):
context = super(DeleteView,self).get_context_data(**kwargs)
did = self.kwargs['did']
q_obj = Quest.objects.filter(id=did)
q_obj.delete()
def get_success_url(self, **kwargs):
return reverse_lazy('delete_detail', kwargs = {'pk': self.kwargs['did']})
您也TemplateView
可以使用DeleteView
类:
class QuestDelete(DeleteView):
model = Quest
pk_url_kwarg = 'did'
def get_success_url(self, **kwargs):
return reverse_lazy('delete_detail', kwargs = {'pk': self.kwargs['did']})
要使用 url 的名称,您需要将 name 参数添加到urls.py
文件中的 url 模式,如下所示:
urlpatterns = [
path('delete_detail', views.delete_detail, name='delete_detail'),
]
推荐阅读
- mips - MIPS 阶乘计算器返回长数可能是寄存器号?
- unit-testing - Golang unittest http 处理程序
- angular - 使用 Angular 6 Table/Grid 和 web api 的服务器端分页
- java - 以递归方式打印 (char) A 到 (n)
- vba - VBA 可以访问 Word 文档中 settings.xml.res 中的数据吗?
- pyspark - Pyspark 半正弦距离
- mql5 - MQL5 - 传递指标作为参数
- ubuntu - Gitlab 导出:找不到 Gemfile 或 .bundle / 目录
- c - C 在 scanf() 处无限循环
- groovy - 为什么 File 类 getAbsoluteFile 和 getParentFile 似乎没有正确返回值?