如何在Django `DeleteView`中为`success_url`传递参数(slug)



我正在使用DeleteView从论坛组中删除帖子。我想以某种方式定义success_url,以便用户将被重定向到删除帖子所在的同一组中的帖子列表。问题是我不知道如何将组名(slug(从confirm_delete.html页面传递到views.py中的DeleteView

# urls.py
urlpatterns = [
path('delete/<slug>/<pk>/', views.DeleteMyPost.as_view(), name='delete')
]
# views.py
class DeleteMyPost(DeleteView):
model = models.MyPost
def get_success_url(self,*args,**kwargs):
return reverse_lazy(
'desired_url_name',
kwargs={'slug':self.kwargs.get('slug')}
)
# mypost_confirm_delete.html
<form method="post">
{% csrf_token %}
<input type="submit" value="Delete">
</form>

它现在不起作用,因为段塞没有被传递到DeleteView。我该怎么修?

尝试:

视图:

class DeleteMyPost(DeleteView):
model = models.MyPost
def get_success_url(self, *args, **kwargs):
return reverse_lazy('desired_url_name', args=[self.kwargs['slug']])

在你的列表模板中放一个链接到删除模板,如:

<a href="{% url 'mypost_confirm_delete' slug=slug pk=mypost.id %}">Delete</a>

祝你好运!

相关内容

最新更新