我的应用程序提供了两种登录网站的方式(同一页面)。首先是用户名&密码和其他用户名&紧急密码。我有backend.py作为
class PersonAuthenticationBackend(object):
def authenticate(self, username=None, password=None):
try:
person = User.objects.get(username=username)
if person.check_password(password):
return person
else:
try:
db_ecode=person.get_profile().u_emergency_code
if password==db_ecode:
print "EMERGENCY LOGIN"
return person
else :
return None
except:
return None
except User.DoesNotExist:
pass
return None
def get_user(self, user_id):
try:
return User.objects.get(pk=user_id)
except User.DoesNotExist:
return None
现在我怎么知道用户是否已使用紧急登录登录?
答案 0 :(得分:0)
这是python,您可以动态地向对象添加属性:
if person.check_password(password):
person.loged_normally = True
return person
和
if password==db_ecode:
print "EMERGENCY LOGIN"
person.loged_normally = False
return person
如果您不仅要在一个请求期间而是在整个会话期间获取信息,那么您必须将其保存到会话引擎和/或数据库中。
答案 1 :(得分:0)
发送signal。制作一个log record。或者你正在寻找别的东西?
答案 2 :(得分:0)
您可以随时添加可以在以后使用的会话吗?
答案 3 :(得分:0)
person.a = lambda: None
setattr(person.a, 'login', True)
然后, 使用
检索print "person.a %s"%person.a.login
然后将其存储在会话中。