此处有Python和Django新手
我一直在尝试从Django获取到标准UpdateView
表单上的删除按钮,然后如果按下该按钮而不是Submit按钮,则将该按钮重定向到DeleteView
。我可以正常使用,但是我不确定如何在单击时重定向到相应的删除页面。
我希望我需要更改reverse_lazy('app:submission_delete')
以便以某种方式包含id,但是我在这里有点迷失了,我的google fu也没有太大帮助。
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())
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'),
]
答案 0 :(得分:0)
如果网址需要args或kwargs:
reverse_lazy('app:Submission_delete', kwargs={'pk': object.pk})
其中object
是要删除的对象。
替代地:
只需使用常规超级链接到删除页面。为此,请使用django的模板标签url
:
{% url 'app:Submission_delete' pk=object.pk %}
您仍然可以通过CSS像按钮一样设置链接的样式,因此用户甚至都不知道区别。