q3d*_*q3d 2 python authentication django
在django中,我使用authenticate()函数来登录用户。使用request.user,我可以访问从用户表中提取的登录用户的信息。如果我这样做request.user.id,我可以获得用户的ID。在任何模板中,根据任何请求,我都可以user.username获取用户名。
有没有一种方法可以将值添加到request.user变量中,以便我可以在整个应用程序和模板中使用它们?
例如,我想这样:request.user.timezone当用户登录网站时设置;我应该能够在模板和我的视图中访问此变量。
您可以编写一个简单的中间件:
class UserTZMiddleware(object):
def process_view(self, request, view_func, view_args, view_kwargs):
if request.user.is_authenticated():
request.user.timezone = evaluate_tz()
Run Code Online (Sandbox Code Playgroud)
然后将其附加到MIDDLEWARE_CLASSES您的settings.py文件中:
MIDDLEWARE_CLASSES = (
....,
'myapp.UserTZMiddleware',
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7239 次 |
| 最近记录: |