2010-06-11 3 views
1

아파치 서버에 문제가 있습니다. 양식 필드에 입력 한 URL이 유효하면 실행시 오류 메시지가 표시되는 코드를 작성했습니다. 장고 developement 서버를 통해 코드를 잘 작동, 오류 메시지를 표시하지만, 아파치를 통해 실행하면 오류 메시지가 그냥 그 페이지 자체로 돌아갑니다 표시하지 않습니다.django 개발 서버에서 작동하지만 아파치에서는 작동하지 않습니다.

친절

확인하고 누군가가이 문제에 도움이 될 수 있으면 알려 주시기, 그것의 장고 작업 -이 :


objc= { 
    "addRecipeBttn": "/project/add", 
    "addRecipeUrlBttn": "/project/add/import", 
    } 

def __showAddRecipe__(request): 
    global objc 
    #global objc 
    if "userid" in request.session: 
     objc["ErrorMsgURL"]= "" 
     try: 
      urlList= request.POST 
      URL= str(urlList['url']) 
      URL= URL.strip('http://') 
      URL= "http://" + URL 

      recipe= __addRecipeUrl__(URL) 

      if (recipe == 'FailToOpenURL') or (recipe == 'Invalid-website-URL'): 
       #request.session["ErrorMsgURL"]= "Kindly check URL, Please enter a valid URL" 
       objc["ErrorMsgURL"]= "Kindly check URL, Please enter a valid URL" 
       print "here global_context =", objc 
       return HttpResponseRedirect("/project/add/import/") 
       #return render_to_response('addRecipeUrl.html', objc, context_instance = RequestContext(request)) 
      else: 
       objc["recipe"] = recipe 
       return render_to_response('addRecipe.html', 
        objc, 
        context_instance = RequestContext(request)) 
     except: 
      objc["recipe"] = "" 
      return render_to_response('addRecipe.html', 
       objc, 
       context_instance = RequestContext(request)) 
    else: 
     login_redirect['next']= "/project/add/" 
     return HttpResponseRedirect("/project/login") 



def __showAddRecipeUrl__(request): 
    global objc 
    if "userid" in request.session: 
     return render_to_response('addRecipeUrl.html', 
      objc, 
      context_instance = RequestContext(request)) 
    else: 
     login_redirect['next']= "/project/add/import/" 
     return HttpResponseRedirect("/project/login") 
_ 

HTML 파일 : 여기에 파이썬과 HTML 모두의 아래의 코드는 개발 서버.

당신에게 하일

+1

왜 "글로벌"을 사용하고 있습니까? dict "objc"는 (어쨌든 두 번 밑줄 친) 방법으로 액세스 할 수 있습니다. – zovision

+1

당신은 아파치에서 애플 리케이션 wsgi, 프록시, mode_python 배포 방법으로 작동합니까? 아파치 오류 로그를 참조하십시오. 디버깅을 위해 print를 사용하지 마십시오. try 블록을 제외하고는 empty를 사용하지 마십시오. 코드는 KeyError와 같은 try blok에서 예외를 발생시킬 수 있습니다. – estin

+1

그리고 django.forms 사용을 고려해야합니다. 따라서이 모든 것을 수동으로 수행 할 필요가 없습니다. 원한다면 올바른 URL을 자동으로 확인할 수있는 URLField와 같은 멋진 것들이 있습니다. 제발 폼 문서를 읽으십시오 : http://docs.djangoproject.com/en/1.2/#forms – mawimawi

답변

1

얘들이, 지원에 대한 감사, 문제가 해결되고, 내가 해냈어 이런 식으로 감사드립니다.

def showAddRecipe(request): 
    #global objc 
    if "userid" in request.session: 
     objc["ErrorMsgURL"]= "" 
     try: 
      urlList= request.POST 
      URL= str(urlList['url']) 
      URL= URL.strip('http://') 
      URL= "http://" + URL 

      recipe= __addRecipeUrl__(URL) 

      if (recipe == 'FailToOpenURL') or (recipe == 'Invalid-website-URL'): 
       #request.session["ErrorMsgURL"]= "Kindly check URL, Please enter a valid URL" 
       objc["ErrorMsgURL"]= "Kindly check URL, Please enter a valid URL" 
       print "here global_context =", objc 
       arurl= HttpResponseRedirect("/project/add/import/") 
       arurl['ErrorMsgURL']= objc["ErrorMsgURL"] 
       return (arurl) 
      else: 
       objc["recipe"] = recipe 
       return render_to_response('addRecipe.html', 
        objc, 
        context_instance = RequestContext(request)) 
     except: 
      objc["recipe"] = "" 
      return render_to_response('addRecipe.html', 
       objc, 
       context_instance = RequestContext(request)) 
    else: 
     login_redirect['next']= "/project/add/" 
     return HttpResponseRedirect("/project/login") 
관련 문제