2015-01-25 3 views
0

장고 리디렉션 앱을 사용하여 301 리디렉션을하려고하는데 이전 URL을 방문 할 때 404 페이지가 계속 표시됩니다. 나는 문서 https://docs.djangoproject.com/en/1.6/ref/contrib/redirects/을 따라 갔고 데이터베이스에 이전 URL과 새 URL을 추가했지만 여전히 작동하지 않습니다.Django 1.6 301 리디렉션이 작동하지 않습니다.

301 리디렉션을 수행하는 다른 방법이

나는 URL을 http://localhost:8000/doclistings/?speciality=Dentist을 가지고 있고 나는 그것이 http://localhost:8000/doclistings/?speciality=Dentists

urls.py

url(r'^doclistings/$', views.doclistings, name='doclistings'), 

views.py

로 리디렉션 할
def doclistings(request): 
    d = getVariables(request) 
    if request.method == "GET": 
     form = DropdownSelectionForm(request.GET) 
     try: 
      s_name = request.GET['speciality'] 
     except: 
      s_name = None 
     try: 
      l_name = request.GET['language'] 
     except: 
      l_name = None 
     try: 
      g_name = request.GET['gender'] 
     except: 
      g_name = None 

     d['s_name'] = s_name # adding these to the forms for the "selected" option 
     d['l_name'] = l_name 
     d['g_name'] = g_name 


     try: 
      doctors = filter_doctors(request=request, specialization=s_name, gender=g_name, language=l_name).order_by('-netlikes') 

     except Exception: 
      return error404(request) 

    else: 
     form = DropdownSelectionForm() 

    d['doctors'] = doctors 
    d.update({'form': form, 'languages': Language.objects.all()}) 
    return render_to_response('m1/doclistings.html',d) 
+0

안녕하세요이이 작동하는지 알려줘 단지 urls.py에서 동일한보기로 두 URL을 가리키는 것으로 간주했습니다. – biobirdman

+0

나는 그 일을하는 방법을 모르겠습니다. 보기 및 URL로 질문을 업데이트했습니다. –

+0

표현을 제외하고 try의 'doctors = ...'가 맞습니까? 404 오류가 여기에서 온 것 같습니다 .... – abrunet

답변

0

정말 다시 할 필요가 없습니다. 곧장. 내가 틀렸을지라도 나를 정정하십시오. 그러나 전문의 가치에 접근하고 싶은데, 사용자 키가 Dentist이면 Dentists이되기를 원합니다.

GET 요청의 키, 값이 제대로 채워지는 올바른 방법은 양식 유효성 검사에 의한 것이라고 생각합니다. 양식 유효성 검사를 수행하는 많은 방법이 있습니다. javascript 또는 django 형식으로 할 수 있습니다.

그러나, 당신의 문제를 해결 빠른 해킹, speciality == 'doctor'의 가치, 당신은 doctors 대신 예를 들어

로 설정하면 것을 코드에 약간의 논리에 전달하는

def doclistings(request): 
    d = getVariables(request) 
    if request.method == "GET": 
     form = DropdownSelectionForm(request.GET) 
     try: 
      s_name = request.GET['speciality'] 
      if s_name == 'Dentist': 
       s_name = 'Dentists' 
     except: 
      s_name = None 
     try: 
      l_name = request.GET['language'] 
     except: 
      l_name = None 
     try: 
      g_name = request.GET['gender'] 
     except: 
      g_name = None 

     d['s_name'] = s_name # adding these to the forms for the "selected" option 
     d['l_name'] = l_name 
     d['g_name'] = g_name 


     try: 
      doctors = filter_doctors(request=request, specialization=s_name, gender=g_name, language=l_name).order_by('-netlikes') 

     except Exception: 
      return error404(request) 

    else: 
     form = DropdownSelectionForm() 

    d['doctors'] = doctors 
    d.update({'form': form, 'languages': Language.objects.all()}) 
    return render_to_response('m1/doclistings.html',d) 

당신이

건배, BioBirdMan

관련 문제