class User(models.Model):
username = = models.CharField(max_length=30)
_isLogged = False
# ... other custom data
一旦用户在登录页面中被记录(_isLogged = True
)〜,我该如何保存这个对象,以便我可以在另一个页面中验证,比如说同一个用户已经登录?
N.B。我试图将所有对象存储在会话变量中,但它不可序列化。
非常感谢。
答案 0 :(得分:1)
您可以通过调用is_authenticated
函数来检查用户是否已登录:
if request.user.is_authenticated():
# something
在类似的帖子中已经很好地描述了这一点:How to check if a user is logged in (how to properly use user.is_authenticated)?
你不需要任何特殊字段(如_isLogged
),如果1)你正在使用默认的Django用户,2)你扩展默认用户模型或3)你正确配置你自己的模特。
有关详细信息,请参阅documentation。
以下article详细说明了这一点。简而言之:
您声明您的用户模型是AbstractUser
类的子类:
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass
通过在Django设置中设置以下值来覆盖默认用户模型:
AUTH_USER_MODEL = 'myapp.MyUser'