登录表单的问题

时间:2012-08-29 11:25:25

标签: django django-views

我正在django中创建一个登录表单。当我运行应用程序并填写用户名和密码字段时。该页面始终重定向到一个条件(用户名是否正确)。

代码如下:

def home(request):

   if request.method == 'POST':
      username = request.POST.get('user_name')
      password = request.POST.get('password')
      user = authenticate(user_name=username, password=password)
      if user is not None:
        if user.is_active:
           login(request, user)
        # success
           return render_to_response('registration/main_page.html',{'form':login},context_instance=RequestContext(request))
        else:
         #user was not active
           return render_to_response('registration/q.html')
      else:
        # not a valid user
           return render_to_response('registration/home.html')

   else:
       # URL was accessed directly
           return render_to_response('registration/w.html')

它始终重定向到home.html

else:
             #user was not active
              return render_to_response('registration/home.html')

为什么会这样?

2 个答案:

答案 0 :(得分:2)

authenticate()功能需要username而非user_name

试试这个:user = authenticate(username=username, password=password)

此外,您可以写if user is not None:

而不是if user :

答案 1 :(得分:0)

看来你的函数在这里返回一个None对象:

if user is not None

您可以添加打印语句以固定它,

if request.method == 'POST':
      username = request.POST.get('user_name')
      password = request.POST.get('password')

      print username # what does it return?

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

      print user # what does it return?

      if user is not None:
          #...
相关问题