2016-04-12 5 views
0

Я очень новичок в python. Django.i создал страницу регистрации сейчас. Я хочу, чтобы login.i написали код для входа в систему, но когда я хочу получить данные, которые публикуются логином от NOne. мой кодКак сделать пользовательский логин в django

def login_success(request): 

    username=request.POST.get('email') 
    password=request.POST.get('password') 
    print "inside loginview" 
    user =authenticate(username=username, password=password) 
    print "username is",username 
    if user is not None: 
     if user.is_active: 
      login(request, user) 


      # return render(request,'loginsuccess.html',{}) 
      return HttpResponseRedirect('/success/') 

     else: 
      state="your account is not active" 

    else: 
     state="username or password is incorrect" 
    print "username",username 

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

я получаю значения NONE в имя пользователя и пароль

мой models.py

class UserProfile(models.Model): 

    first_name=models.CharField(max_length=50,blank=True ,null=True) 
    last_name=models.CharField(max_length=50,blank=True ,null=True) 
    password=models.CharField(max_length=50) 
    email=models.EmailField() 

    def __unicode__(self): 
     return self.first_name or u'' 

мой шаблон Войти

<!DOCTYPE html> 
<html> 
    <head> 
     <!-- Is anyone getting tired of repeatedly entering the header over and over?? --> 
     <title>Rango</title> 
    </head> 

    <body> 
     <h1>Login to Rango</h1> 

     <form id="login_form" method="post" action="/loginsuccess/"> 
      {% csrf_token %} 
      Username: <input type="text" name="username" value="" size="50" /> 
      <br /> 
      Password: <input type="password" name="password" value="" size="50" /> 
      <br /> 

      <input type="submit" value="submit" /> 
     </form> 

    </body> 
</html> 

ответ

0

Update 1:

Прежде всего UserProfile вы создали это не правильный путь ... по умолчанию Джанго имеет User модальный

Поэтому, пожалуйста, удалите класс UserProfile из вашего models.py, но если вы хотите добавить дополнительное поле затем расширить с ForeignKey нравится

class UserProfile(models.Model): 
    user = models.ForeignKey(User) 
    phone_number = models.IntegerField() 

Ответ

Ваш метод форма post так получить пост значения в представлениях, как этот

def login_success(request): 
    if request.method == 'POST': 
     # do your code here 
     username = request.POST.get('username') 
     password = request.POST.get('password') 

написать HTML, как этот

<form id="login_form" method="post" action=""> 
     {% csrf_token %} 
     Username: <input type="text" name="username" size="50" /> 
     <br /> 
     Password: <input type="password" name="password" size="50" /> 
     <br /> 

     <input type="submit" value="submit" /> 
    </form> 
+0

Я попытался это также. но не работает – vikrant

+0

Можете ли вы удалить атрибут действия в форме и повторить попытку с тем же? а также в вашем измененном коде отредактируйте 'request.POST.get ('username')' please –

+0

. Я получаю то, что говорит – vikrant

Смежные вопросы