在UpdateView上获取删除按钮以重定向时出现问题

问题描述 投票:0回答:1

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'),
]
python django django-forms
1个回答
0
投票

如果URL需要args或kwargs:

reverse_lazy('app:Submission_delete', kwargs={'pk': object.pk})

其中object是将被删除的对象。

或者:

只需使用常规超链接即可删除页面。使用django的模板标签url

{% url 'app:Submission_delete' pk=object.pk %}

您仍然可以通过CSS将按钮设置为按钮,因此用户甚至不知道其中的区别。

© www.soinside.com 2019 - 2024. All rights reserved.