Mri*_*lla 32 python authentication django
如何在Django中以编程方式登录用户?我有用户的用户名和密码.有没有让我登录他的方法?
Cat*_*lus 47
除了"以编程方式"之外别无他法.当然,这是记录在案的.
from django.contrib.auth import authenticate, login
user = authenticate(username = username, password = password)
if user is not None:
login(request, user)
Run Code Online (Sandbox Code Playgroud)
在以编程方式记录用户时,请注意,您可能会收到错误消息user has no attribute "backend".如果以前没有发生过,你也必须设置后端.使用此项目和一些示例代码的项目:
def splash_register(request):
if request.session.get('beta'):
if request.method=='POST':
userform=MyUserCreationForm(request.POST)
if userform.is_valid():
#username of <30 char is required by Django User model. I'm storing username as a hash of user email
user=userform.save(commit=False)
user.username=hash(user.email)
user.backend='django.contrib.auth.backends.ModelBackend'
user.save()
username=user.username
password=str(userform.cleaned_data['password'])
auth.login(request, user)
request.session['first_visit']=True
return HttpResponseRedirect("/")
else:
userform=MyUserCreationForm(request.POST)
return render_to_response("website/splash_register.html", {'userform':userform}, context_instance=RequestContext(request))
return render_to_response("website/splash_register.html", context_instance=RequestContext(request))
else:
return HttpResponseRedirect('/splash/')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13288 次 |
| 最近记录: |