每次尝试重定向到Django的同一页面时,我总是收到ERR_TOO_MANY_REDIRECTS错误。我尝试使用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.
path('test/<int:pk>/details', Test.as_view(), name='details'),
path('check/secure/<int:pk>', Others.as_view(), name='service'),
答案 0 :(得分:2)
上面的内容终于通过以下解决了
在您的视图中,您可以呈现页面而不用像这样重定向页面
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 %}
希望这会有所帮助!