#python-3.x #django #django-models
#python-3.x #django #django-модели
Вопрос:
Я использую DeleteView
для удаления сообщений из группы форума. Я хотел бы определить success_url
таким образом, чтобы пользователь был перенаправлен в список записей в той же группе, где была удаленная запись. Проблема в том, что я не знаю, как передать имя группы (slug) с confirm_delete.html
страницы на DeleteView
в views.py
.
# 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>
Прямо сейчас это не работает, поскольку slug не передается в DeleteView
. Как я могу это исправить?
Ответ №1:
Попробуйте:
число просмотров:
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>
Удачи!