2017-02-02 4 views
0

私はDjangoの認証システムを使ってユーザーにログインしようとしています。しかし、私は今のところ、私はちょうどそれで遊んでてきた、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'が使用されています。最初にユーザーを作成するコードを記述する必要はありますか?私はDjango APIで作成しました

答えて

1

ユーザーは存在しません。管理者に行き、最初に作成してください。また、サインインする前にyesユーザーを作成する必要があります。

+0

しかし、どのようにして誰かが新しいアカウントにサインアップするのですか? – Amon

+0

私は声明の中で説明することはできませんが、これを読んでみることができますhttp://blog.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})