Перенаправить на ту же страницу в Django - PullRequest
1 голос
/ 19 октября 2019

Я получаю ошибку ERR_TOO_MANY_REDIRECTS каждый раз, когда я пытаюсь перенаправить на ту же страницу в Django. Я попытался использовать return HttpResponseRedirect ('') и return HttpResponseRedirect (self.request.path_info) из которых дал пустой экран и ошибку ERR_TOO_MANY_REDIRECTS соответственно. Я также пытался:

**views.py**
class Test(DetailView):
   def get(self, request, *args, **kwargs):
        self.object = self.get_object()
        if check.objects.filter(active=True):
            return redirect(reverse('service', kwargs={"pk": self.object.pk}))
        else:
           render(self.request, 'page/details.html') # redirect to same page.

url.py

path('test/<int:pk>/details', Test.as_view(), name='details'),
path('check/secure/<int:pk>', Others.as_view(), name='service'),

1 Ответ

2 голосов
/ 19 октября 2019

Выше было решено, наконец, с помощью следующего:

В ваших представлениях вы можете визуализировать страницу вместо перенаправления на нее следующим образом:

class Test(DetailView):
    def get(self, request, *args, **kwargs):
        self.object = self.get_object()
        if check.objects.filter(active=True):
            return redirect(reverse('service', kwargs={"pk": self.object.pk}))
        else:
           return render(self.request, 'page/details.html', {'jobs': Jobs.objects.all()}) # redirect to same page.

Затем в вашем шаблоне выможно просто отобразить список с помощью forloop,

{% for job in jobs %}
     {{ job }}
{% endfor %}

Надеюсь, это поможет!

...