2014-12-30 4 views
-3

나는 반세기 전에 장고에서 프로젝트를 시작했고, 작은 세부 사항을 알 수 없기 때문에 백 버너에 넣기 시작했다. 프로젝트 및 생각 나는 아마 여기에 빠른 응답을 얻을 수 있습니다.django에서 양식에서 사용자 이름과 암호를 추출하는 중

<form action="/auth/" method="post" class="navbar-form navbar-right" role="form"> {% csrf_token %} 
    <div class="form-group"> 
     <input type="text" placeholder="Email" class="form-control"> 
    </div> 
    <div class="form-group"> 
     <input type="password" placeholder="Password" class="form-control"> 
    </div> 
    <button type="submit" class="btn btn-primary">Login</button> 
    <a class="btn btn-primary" href="/register/">Signup</a> 
    </form> 

Here's the result

목표는 별도의 로그인 페이지를 방지하는 것입니다 :

나는 다음과 같은 HTML에 의해 생성되는 내 사이트에 내 도구 모음에있는 미니 양식을 가지고있어 단지 사용자가 로그인 할 때까지 상단이 있습니다.

을 목표는이 사용자가 로그인 할 때 장고의 인증을 사용하는 것입니다.

def auth_view(request): 
    email = request.POST.get('username', '') 
    password = request.POST.get('password', '') 
    print "username is ", email, "password is ", password 
    user = auth.authenticate(username=email, password=password) 

    if user is not None: 
    auth.login(request, user) 
    return HttpResponseRedirect('/loggedin/') 
    else: 
    return HttpResponseRedirect('/invalid/') 

위의 코드는 urls.py가 건네주는 로그인 버튼 클릭을 처리하려고합니다. 그러나 양식을 제출할 때마다 디버그 문은 전자 메일과 암호가 항상 빈 문자열임을 나타냅니다. 따라서 양식에서 정보를 잘못 추출해야합니다.

어떻게 성공적으로 로그인 할 수 있습니까? 도와주세요!

감사합니다, ERIP

+0

양식의 HTML은 어떻게 생성합니까? 나는 당신의 입력에 대한'name' 속성을 볼 수 없다. – abstractpaper

+0

나는 당신의 질문을 정말로 이해하지 못합니다. – erip

+0

질문에 게시 한 양식의 HTML을 어떻게 생성합니까? Django의 템플릿을 사용하고 있습니까? 아니면 수동으로 HTML 코드를 타이핑하고 있습니까? – abstractpaper

답변

2

당신이 요청 객체에서 값을 얻을 수없는 이유는 두 입력이 더 name 속성이 없습니다. request.POST.get('username', '')은 이름 속성이 username 인 입력 값을 얻으려고하지만이 경우에는 존재하지 않습니다. 따라서 name 속성을 추가하면이를 대신 처리해야합니다.

각 필드에 대해 name 속성을 자동으로 생성하고 할당하는 Django의 양식 모듈을 활용할 수 있으며, 결국 이러한 입력을 다시 로그인 양식에 바인딩합니다. 이것에 대한 자세한 내용은 docs 공식입니다.

+0

에서 추가되었습니다. name = "username"및 name = "password"가 추가되어 매력적이었습니다. 정말 고마워! – erip

관련 문제