在Django自定义用户模型中检查会话

时间:2014-05-09 14:08:29

标签: python 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')

上面的代码可以检查用户是否在数据库中并且能够重定向到个人资料页面。我想要实现的是,如果用户注销,会话密钥应该过期或重定向到另一个页面,而不是在个人资料页面上。

我想问,如果真的可能吗?感谢。

1 个答案:

答案 0 :(得分:0)

只需创建另一个注销视图。

def logout_view(request):
    try:
        del request.session['id']
    except KeyError:
        pass

    return HttpResponseRedirect('/home')