我有一个登录和身份验证功能,从窗体中获取输入,验证数据库中的数据,如果正确返回right.html,如果不返回wrong.html。密码存储在galaxy_user数据库,UNAME的输出是:认证在Django中不起作用?
u'sachitad'
而且PASSW的输出是:
u'f8566297ee28e8a3096497070b37b91d24c24243'
def login(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
u = ''.join(username)
p = hashlib.sha1(password).hexdigest()
a = GalaxyUser.objects.values_list('username', 'password')
uname = a[0][0]
passw = a[0][1]
user = authenticate(uname=u, passw=p)
if user is not None:
return render_to_response('right.html', context_instance=RequestContext(request))
else:
return render_to_response('wrong.html', context_instance=RequestContext(request))
else:
return render_to_response('login.html', context_instance=RequestContext(request))
编辑: GalaxyUser表:
id | create_time | update_time | email | password | external | deleted | purged | username | form_values_id | disk_usage |
+----+---------------------+---------------------+-------------------------------+------------------------------------------+----------+---------+--------+----------+----------------+------------+
| 1 | 2013-01-11 15:00:30 | 2013-01-11 15:00:30 | [email protected] | f8566297ee28e8a3096497070b37b91d24c24243 | 0 | 0 | 0 | sachitad | NULL | NULL |
| 2 | 2013-01-11 15:01:01 | 2013-01-11 15:01:01 | [email protected] | f8566297ee28e8a3096497070b37b91d24c24243 | 0 | 0 | 0 | saugat | NULL | NULL |
+----+---------------------+---------------------+-------------------------------+------------------------------------------+----------+---------+--------+-
我想用电子邮件和密码进行身份验证。
试过!没有工作。尽管使用了正确的用户名和密码,它仍会被重定向到wrong.html。这是一个逻辑错误,所以我没有得到回溯。 – user1881957
我要编辑一秒 – sgarza62
我没有注册用户。我正在使用同一个数据库的另一个应用程序的表。 – user1881957