django中的User类应该怎么用
我最近在看一个Django的教程,里面有一章提到用户登录。那个教程写的方法是查询数据库中的username字段对应的password,和输入的password比较是否是相同的。我觉着这个方法不太好,就去官方文档看了一下有一个自带用户登录的User类。
我就改了一下模型
class UserProfile(models.Model):
Userinfo = models.OneToOneField(User)
join_time = models.DateTimeField()
然后改了一下视图。
def Userlogin(request):
uf = UserForm(request.POST)
if request.method == "POST":
if uf.is_valid():
uf = UserForm(request.POST)
username = uf.cleaned_data['username']
password = uf.cleaned_data['password']
user = models.UserProfile.authenticate(username=username,password=password)
if user is not None:
if user.is_active:
login(request, user)
return render(request,'UserLogin/index.html',{'username':username})
else:
return HttpResponse('password is not matched')
return render(request, 'UserLogin/login.html',{'uf':uf})
但是这样在登录的时候会显示
'UserForm' object has no attribute 'cleaned_data'
是不是我用法有问题。。希望各位高手赐教。。谢谢。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
把
uf = UserForm(request.POST)
移动到if request.method == 'POST'内。再将
is_valid()那个'uf=UserForm(request.POST)
删除掉。我在写这类方法的时候,会写成这样的结构: