2017-03-15 46 views
0

我自定義用戶。 所以我需要用電子郵件登錄。 用戶=認證(電子郵件=電子郵件,密碼=密碼)似乎不工作... 幫我... 讓我知道如何解決我的views.py。django自定義用戶視圖?

這裏是我的看法。

from django.contrib.auth.decorators import login_required 
from django.contrib.auth import authenticate, login, logout 
from django.core.urlresolvers import reverse 
from django.shortcuts import render 
from LanguageExchange.forms import UserCreationForm,UserChangeForm 
def index(request): 
    context_dict = {'boldmessage': "Crunchy, creamy, cookie, candy, cupcake!"} 
    return render(request, 'LanguageExchange/index.html', context=context_dict) 

def register(request): 
    # A boolean value for telling the template 
    # whether the registration was successful. 
    # Set to False initially. Code changes value to 
    # True when registration succeeds. 
    registered = False 

    if request.method == 'POST': 
    user_form = UserCreationForm(data=request.POST) 
    # change_form = UserChangeForm(data=request.POST) 

    # if the two forms are valid.. 
    if user_form.is_valid(): 

     user = user_form.save() 


     user.set_password(user.password) 
     user.save() 

    #if change_form.is_valid():  
    # change = change_form.save() 
    # change.set_password(user.password) 
    # change.user = user 
     registered = True 

    else: 

     print(user_form.errors) 

else: 

    user_form = UserCreationForm() 
    # change_form = UserChangeForm() 

return render(request, 
      'LanguageExchange/register.html', 
      {'user_form': UserCreationForm, 
      'registered': registered}) 

def user_login(request): 
    if request.method == 'POST': 
    username = request.POST.get('email') 
    password = request.POST.get('password') 
    user = authenticate(email=email, password=password) 

    if user: 
     if user.is_active: 

      login(request, user) 
      return HttpResponseRedirect(reverse('index')) 
     else: 

      return HttpResponse("Your Rango account is disabled.") 
    else: 

     print("Invalid login details: {0}, {1}".format(email, password)) 
     return HttpResponse("Invalid login details supplied.") 

else: 

    return render(request, 'LanguageExchange/login.html', {}) 

讓我知道如何解決我的views.py。

回答

1

刪除

user.set_password(user.password) 

在寄存器中;

變化

user = authenticate(email=email, password=password) 

user = authenticate(username=email, password=password) 

在USER_LOGIN。

+0

哦謝謝你的幫助。 – DHC

+0

讓我知道我的問題是什麼? ? – DHC

+0

看看UserCreationForm的源代碼,你會知道的。現在可以登錄嗎? – Ykh