У меня проблема с перенаправлением пользователей в django
Я новичок и создаю форум, используя html, css, bootstrap, python и django. Я создал представление для удаления сообщений:
class DeletePost(DeleteView):
model = Post
success_url = '/'
def get_queryset(self):
queryset = super().get_queryset()
return queryset.filter(author_post_id=self.request.user.id)
Когда пользователь нажимает кнопку "Подтвердить", когда ему нужно удалить сообщение, я хотел бы перенаправить его на ту же страницу обсуждения, на которой было сообщение, которое он удалил, но я не знаю как. Кто-нибудь может помочь? Заранее спасибо
Вы можете использовать метод 'redirect' в Django.
Сначала импортируйте его: from django.shortcuts import redirect
затем напишите эту одну строку кода : return redirect('/nameOfURL')
под вашими представлениями, основанными на классах/функциях.
Обновление :
def delete_post(request, id):
if request.method == 'POST':
pi = Post.objects.get(pk=id)
pi.delete()
return redirect('/view_discussion')
Вы можете отменить get_success_url
с помощью:
class DeletePost(DeleteView):
model = Post
def get_queryset(self):
return super().get_queryset().filter(
author_post_id=self.request.user.id
)
def get_success_url(self):
return reverse('view_discussion', kwargs={'pk': self.object.discussion_id})