如何检查Django中所有视图的会话?

时间:2016-05-17 06:03:46

标签: django

在通过用户名和密码验证后,我在视图session["UserID"]中为用户登录状态设置了login page

然后我需要检查用户是否在其他所有视图中登录,例如home pageshopping bag page等。

我的问题是,我可以只检查一次,我应该在哪里写它?是否在调用视图之前触发了一些方法?

1 个答案:

答案 0 :(得分:3)

  

我的问题是,我可以只检查一次,我应该在哪里写它?

你做了一次检查,如果你正在使用django的内置身份验证方法,那么整个用户处理都是为你完成的,你不需要会话用户id,因为django通过请求处理user它的auth middleware

登录后,user对象将request作为AnonymousUser对象的一部分,如果未登录则为auth,如果是,则为用户类的实例登录。

  

在调用视图之前是否触发了一些方法?

是的,中间件,you could write your own自定义中间件,但我认为你不需要它。

  

我在ASP.NET中的MASTER PAGE中检查登录状态,它可以控制导入它的所有其他页面。

我还没有真正使用过asp.net但是你不需要这样做,django会为你处理它的用户(提供你使用的内置wrap_content工具)。

请参阅Limiting access to logged-in users以及user

上提供的功能和属性