Как перенаправить на ту же страницу после публикации комментария, используя Django - PullRequest
0 голосов
/ 27 февраля 2020

как указано в заголовке моей темы, я занимался этим вопросом уже несколько дней. Я пытаюсь перенаправить на ту же страницу, я был после комментирования страницы, независимо от постраничных комментариев. Попытка изменить метод get_success_url, но он не работает.

class ReadThread(MultipleObjectMixin, CreateView):
    query_pk_and_slug = True
    form_class = PostForm
    paginate_by = 3
    template_name = 'read_thread.html'
    context_object_name = 'posts'

    def get(self, request, *args, **kwargs):
        self.thread = self.get_object()
        self.object_list = self.get_queryset()
        return super().get(request, *args, **kwargs)

    def get_object(self):
        thread = super().get_object(
            Thread.objects.filter(category__slug__iexact=self.kwargs['category_slug'])
        )
        return thread

    def post(self, request, *args, **kwargs):
        self.thread = self.get_object()
        return super().post(request, *args, **kwargs)

    def get_queryset(self):
        return self.thread.posts.all()

    def get_context_data(self, **kwargs):
        context = super(ReadThread, self).get_context_data(**kwargs)
        context['thread'] = self.thread
        return context

    def form_valid(self, form):
        form.instance.thread = self.thread
        form.instance.user = self.request.user
        return super().form_valid(form)

    def get_success_url(self):
        return redirect(self.request.build_absolute_uri(self.thread))

1 Ответ

0 голосов
/ 27 февраля 2020

Вы ищете перенаправление на HTTP_REFERRER

redirect(request.META.get('HTTP_REFERER'))

, которое можно добавить в ответ на успешный запрос POST?

...