我编写简单的Django项目,我想在登录尝试失败时存储客户端IP和日期。我准备模型:
class FailIp(models.Model):
ip = models.CharField(
max_length=16,
verbose_name=_(u'fail login ip'),
)
date = models.DateTimeField(default=datetime.now)
但我不知道如何挂钩登录错误。网址:
url(
r'^login/$',
'django.contrib.auth.views.login', {
'template_name': 'login.html'
},
name='login'
),
怎么做?
答案 0 :(得分:2)
这是django.contrib.auth.signals.user_login_failed
信号的一个非常好的用例 - 在Django 1.5中引入,当用户无法成功登录时发送:
from django.contrib.auth import signals
def listener_login_failed(sender, credentials, **kwargs):
# handle log in failure
signals.user_login_failed.connect(listener_login_failed)