1

간단한 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 :

url(
    r'^login/$', 
    'django.contrib.auth.views.login', { 
     'template_name': 'login.html' 
    }, 
    name='login' 
), 

어떻게 하시겠습니까?

답변

2

django.contrib.auth.signals.user_login_failed 신호를위한 아주 좋은 사용 사례입니다 - 사용자가 성공적으로 로그인을 실패했을 때 장고 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) 

또한 tests for django.contrib.auth.signals를 참조하십시오.