在UpdateView上获取删除按钮以重定向时出现问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在UpdateView上获取删除按钮以重定向时出现问题相关的知识,希望对你有一定的参考价值。
Python和Django新手在这里
我一直试图从Django上获取一个标准UpdateView
表单上的删除按钮,然后如果按下该按钮而不是提交按钮,则将其重定向到DeleteView
。我有这个工作,但我不知道如何在点击时重定向到相应的删除页面。
我希望我需要改变reverse_lazy('app:submission_delete')
,以某种方式包括id,但我有点迷失在这里,而且我的google fu也没有多大帮助。
views.朋友
class AssessmentUpdate(UpdateView):
model = Submission
fields = '__all__'
success_url = reverse_lazy('app:index')
def form_valid(self, request):
if 'Delete' in self.request.POST:
reverse_lazy('app:Submission_delete')
else:
self.object = request.save()
return HttpResponseRedirect(self.get_success_url())
URLs.朋友
app_name = 'app'
urlpatterns = [
re_path(r'^$', views.index, name='index'),
path('<int:submission_id>/', views.detail, name='detail'),
path('<int:pk>/update/', views.AssessmentUpdate.as_view(), name='Submission_update'),
path('<int:pk>/delete/', views.AssessmentDelete.as_view(), name='Submission_delete'),
]
答案
如果URL需要args或kwargs:
reverse_lazy('app:Submission_delete', kwargs={'pk': object.pk})
其中object
是将被删除的对象。
或者:
只需使用常规超链接即可删除页面。使用django的模板标签url
:
{% url 'app:Submission_delete' pk=object.pk %}
您仍然可以通过CSS将按钮设置为按钮,因此用户甚至不知道其中的区别。
以上是关于在UpdateView上获取删除按钮以重定向时出现问题的主要内容,如果未能解决你的问题,请参考以下文章