2017-02-02 1 views
0

저는 장고의 인증 시스템을 사용하여 사용자 로그인을 시도했습니다. 하지만 난 그냥 지금까지 놀아 봤는데하는 User 객체를 생성하는 방법을 알아낼 수 없습니다Django에서 User 객체를 반환하는 데 문제가 발생했습니다.

def sign_in(request): 

    form = NameForm(request.POST) 
    if form.is_valid(): 
     post = form.save() 
     post.save() 
     username = request.POST.get(post.question_text) 
     password = request.POST.get(post.id_text) 
     user = authenticate(username=username, password=password) 
     if user is not None: 
      login(request,user) 
      return HttpResponse('hi') 
     else: 
      return HttpResponse('bye') 
    else: 
     form = NameForm() 
    return render(request, 'checkin/sign_in_new.html', {'form': form}) 

이 프로그램은 bye을 반환 유지합니다. 나는 request.POST.get()에 대한 매개 변수로 무엇을 넣어야하는지 잘 모르겠다. Django 문서는 각각 'username'과 'password'를 사용한다. 먼저 사용자를 생성하려면 코드를 작성해야합니까? 장고 API에서 하나를 만들었습니다.

답변

1

사용자가 존재하지 않습니다. 관리자에게 가서 가장 먼저 생성하십시오. 그리고 예를 들어 로그인을 시도하기 전에 사용자를 생성해야합니다.

+0

예를 들어 누군가 새 계정을 어떻게 신청합니까? – Amon

+0

성명서에서 설명 할 수는 없지만 http://read.narenarya.in/right-way-django-authentication.html – kawadhiya21

+0

나는이 사이트를 실제로 읽었습니다. 나는 그것이 사용자를 만드는 방법을 보여주지 않는다고 생각합니다. 단지 기존 사용자를 인증하는 방법을 보여줍니다. – Amon

0

알았어. 알아두면 좋겠어. 먼저 코드에 user을 만들어야합니다. 방금 user = User.objects.create_user('charlie', '[email protected]', 'smith')을 추가 했으므로 다음과 같습니다.

def sign_in(request): 
    #we need to handle all the data that was just typed, we'll add a condition for that 
    form = NameForm(request.POST) 
    if form.is_valid(): 
     post = form.save() 
     post.save() 
     username = request.POST.get('username') 
     password = request.POST.get('password') 
     user = User.objects.create_user('charlie', '[email protected]', 'smith') 
     auth = authenticate(username=username, password=password) 
     if user is not None: 
      login(request,user) 
      return HttpResponse('hi') 
     else: 
      return HttpResponse('bye') 
    else: 
     form = NameForm() 
    return render(request, 'checkin/sign_in_new.html', {'form': form}) 
관련 문제