0

장고에 내장 된 인증 모듈을 사용하려고합니다. 내가 일하고있는 사이트의 경우 이메일 주소를 로그인 이름으로 사용하고 일반적으로 설정되어있는 일반 영숫자 필드 만 사용하려는 것이 아닙니다. 이렇게하기 위해 모든 문자열 필드를 전자 메일 필드로 변경하고 최대 길이를 30에서 320으로 변경했습니다. 내 등록 코드는 잘 작동하지만 내 로그인 코드는 아닙니다. 여기에 내가 지금 사용하지 않는거야 무슨 :Django 폼은 항상 실패합니다

def login(request): 
    if request.method == 'POST': 
     form = AuthenticationForm(request.POST) 
     if form.is_valid(): 
      return HttpResponse("valid") 
      username = request.POST['username'] 
      password = request.POST['password'] 
      user = authenticate(username=username, password=password) 
      if user is not None: 
       if user.is_active: 
        login(request, user) 
        return HttpResponseRedirect("/") 
        # Redirect to a success page. 
       else: 
        return HttpResponse("Disabled Account") 
        # Return a 'disabled account' error message 
      else: 
       return HttpResponse("Invalid Login") 
       # Return an 'invalid login' error message. 
     else: 
      return HttpResponse("%s" % repr(form.errors)) 
    else: 
     form = AuthenticationForm() 

    return render_to_response("login.html", {'form': form, }, context_instance=RequestContext(request)) 

을 아무리 제출 무엇 form.is_valid()는 FALSE 반환하지만 form.errors가 비어 있습니다. 어떤 아이디어가 잘못된 것일까 요? 나는 그것이 전부라고 생각하지 않도록 이메일 속성으로 모든 것을 변경했다고 생각합니다. 또한, 경우에 나는 djangoappengine을 사용하여 Google 애플 리케이션 엔진에서 이것을하려고 노력하고있어.

+0

당신이 AuthenticationForm에 대한 코드를 게시 할 수 있습니까? – dannyroa

답변

0

죄송 합니다만, Google 애플리케이션 엔진 위에 장고의 인증 모듈을 사용할 수 없습니다. Django는 google-app-engine과 유사하지만 drop-in 호환이 아닌 자체 데이터베이스 백엔드를 사용합니다.

당신이 GAE에 대한 인증을 수행하려는 경우, 당신은 그것을 구글 - 앱 엔진 방식으로 수행해야합니다 http://code.google.com/appengine/docs/python/users/

+0

답장을 보내 주셔서 감사합니다. 그러나, djangoappengine은 내가 아는 한 GAE 플랫폼에 인증 모듈의 완전한 포트를 제공합니다 : http://www.allbuttonspressed.com/projects/djangoappengine#authentication. – blcArmadillo