내 웹 사이트의 기본 페이지 상단에 여러 개의 버튼이 있습니다. 이 버튼들 중 하나가 눌려지면 get 요청이 django view로 보내지며, 이것은 리디렉션되고 django 모델의 쿼리 세트는 필터링되어 웹 페이지에 표시됩니다. 터미널에서 요청이 제대로 리디렉션된다고 말하면서 내 아약스가 작동하는 것을 알고 있습니다. 리다이렉트하는 기능도 매우 간단하고 오류가 발생하지 않았기 때문에 작동하는 것처럼 보입니다. 그러나 내 견해는 동일하게 유지되며 왜 그런지 잘 모르겠습니다.Ajax 리디렉션 후 장고보기가 렌더링되지 않습니다.
urls.py
url(r'ajax_filter/', views.ajax_filter, name='ajax_filter'),
url(r'filter=(\w+)/$', views.filtered_index, name='filtered_index'),
views.py
def filtered_index(request, filter):
clothes = Clothes_Item.objects.filter(gender=filter)
if request.user.is_authenticated():
favorite_clothes_ids = get_favorite_clothes_ids(request)
return render(request, 'test.html', {'clothes': clothes, 'favorite_clothes_ids': favorite_clothes_ids})
else:
return render(request, 'test.html', {'clothes': clothes, })
def ajax_filter(request):
if request.is_ajax():
gender_filter = request.GET.get('gender_filter') #filter type
if gender_filter is not None:
return HttpResponseRedirect(reverse('filtered_index', args=[gender_filter]))
return HttpResponse('')
위에서 작성한 코드의 두 번째 부분에서 리디렉션을 어떻게 처리해야합니까? –
보기에서 JsonResponse를 반환하고 리디렉션 할 다음 URL을 반환하십시오. 자바 스크립트에서 window.location.href를 사용하여 클라이언트에서 리디렉션을 수행합니다. – 2ps
@ 2ps가 언급 된대로'window.location.href = your_url'을 사용할 수 있습니다. – ettanany