在Django自定义用户模型中检查会话
我正在创建一个自定义用户模型,这里是我在models.py中的代码:
class Users(models.Model):
username = models.CharField(max_length=30)
password = models.CharField(max_length=30)
contactnos = models.IntegerField()
address = models.CharField(max_length=50)
fname = models.CharField(max_length=30)
mname = models.CharField(max_length=30)
lname = models.CharField(max_length=30)
def __unicode__(self):
return self.username
在views.py中,我有这一行代码:
def auth_view(request):
try:
m = Users.objects.get(username=request.POST['username'])
if m.password == request.POST['password']:
request.session["id"] = m.id
myid = request.session["id"]
if myid == m.id:
return render(request, "profile.html", {
'username': m,
'myid': myid
})
else:
HttpResponse("Session has expired. Log in again.")
except Users.DoesNotExist:
return HttpResponseRedirect('/account/invalid')
上面的代码可以检查用户是否在数据库中,并能够重定向到个人资料页面。我想要实现的是,如果用户注销,session(会话)密钥应该过期,或者重定向到另一个页面,而不是停留在个人资料页面。
我想问一下,这真的可能吗?谢谢。
1 个回答
0
只需要再创建一个用于登出的视图。
def logout_view(request):
try:
del request.session['id']
except KeyError:
pass
return HttpResponseRedirect('/home')