python - 如何为经过身份验证的用户添加登录后信息?

标签 python django

我正在使用开箱即用的 django 1.5 身份验证解决方案。经过身份验证后,我想使用来自 django.contrib.auth.signals 的 user_logged_in 信号向用户添加“post_login_info”

from django.contrib.auth.signals import user_logged_in
from django.dispatch import receiver

@receiver(user_logged_in)    
def post_login_action(sender,user,request,**kwargs):
    user.post_login_info = 'my post login information'

但是,我稍后无法从请求对象中检索 user.post_login_info,如下所示:

from braces.views import LoginRequiredMixin
from django.views.generic import ListView

class MyListView(LoginRequiredMixin,ListView):
def get_queryset(self):
    self.request.user.post_login_info  # Attribute Error: 'User' object has no attribute 'post_login_info'
    ...

感谢您的任何建议。

最佳答案

您的 User 对象是否有 post_login_info 成员?如果是这样,您应该在设置 post_login_info 后调用 user.save()

如果没有,您将必须找到其他方法来保存该信息。一种可能性可能是 Django 的 session storage mechanism ,一个customized User model使用 post_login_info 成员或新模型(例如 PostLoginInfo 具有 User 的外键。

关于python - 如何为经过身份验证的用户添加登录后信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19457594/

相关文章:

python - 在 python 中实现 HMAC-SHA1

python - 如何使用 Flask/SQLalchemy/Alembic 初始化数据库表?

python - 如何检测一个简单但半透明的形状的存在?

mysql - django - 生产中的 manage.py 错误

python - 如何在 numpy 中获取两个索引数组之间的矩阵元素?

python - 图中带有标记边的最短路径

python - 如何允许 f() 取小数值

django - Angular NgRessource 具有来自 django Rest 框架的分页结果

django - 如何添加占位符 UserCreationForm django?

python - Django 使用 PyCharm 时出错 : "' function' object has no attribute 'using' "