如何在 request.user
或 request.session.user
中设置自己的用户
我自己的模型:
class User(Document):
id = fields.IntField(primary_key=True)
username = fields.StringField(required=True)
email = fields.EmailField()
....
@property
def is_authenticated(self):
return False
我在我的 View 中设置了这个
user = User.objects.get(email=email)
request.session.user = user
但没有成功。
最佳答案
您无法按照您尝试的方式在 session
对象上设置属性。
但是您可以在 session
对象中设置一个key(因为它就像一本字典),如下所示:
# you can't set a user object directly
# because it's not JSON serializable
# but you can set its `id`
request.session['user_id'] = user.id
稍后,您可以像这样获取用户:
user_id = request.session.get('user_id', None)
if user_id:
user = User.objects.get(id=user_id)
...
要注销用户,您所要做的就是从 session 中删除 key 并调用flush()
:
def logout(...):
try:
del request.session['user_id']
request.session.flush()
except KeyError:
pass
...
关于python - 如何使用 MongoDB 在 Django 中的 request.user 中设置 User,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48026559/