在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上获取删除按钮以重定向时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮以重定向到父 URL

劫持sharepoint列表窗体上的提交或保存按钮以重定向

如何在 FLUTTER 中设置一个按钮以重定向到我的地图?

重定向到其他页面时出现 iFrameResizer 问题

登录以重定向到其他页面

如何从批处理脚本中获取特定的标准输出以重定向到文本文件