2014-01-24 3 views
1

누구든지 장고 인증 시스템을 사용자 정의하는 것에 대해 더 많은 정보를 제공 할 수 있습니까? 글쎄, 난 내가 식별자로 이메일을 사용하는 사용자 정의 사용자 생성 :사용자 인증 사용자 정의

USERNAME_FIELD = 'email' 

을 나는 사용자 지정 인증 백엔드를 만들어, 나는 설정 파일에서이 새에 인증 백엔드를 변경 :

class Custom_Authentication(ModelBackend): 
     def authenticate(self, email=None, password=None): 
      try: 
       user = self.user_class.objects.get(email=email) 
       if user.check_password(password): 
        return user 
      except self.user_class.DoesNotExist: 
        return None 

     def get_user(self, user_id): 
      try: 
       return self.user_class.objects.get(pk=user_id) 
      except self.user_class.DoesNotExist: 
       return None 

     @property 
     def user_class(self): 
      if not hasattr(self, '_user_class'): 
       self._user_class = get_model(*settings.AUTH_USER_MODEL.split('.', 2)) 
       if not self._user_class: 
        raise ImproperlyConfigured('Could not get custom user model') 
      return self._user_class 
from django.contrib import auth 
    def auth_view(request): 
     email = request.POST.get('email', '') 
     password = request.POST.get('password', '') 
     user = auth.authenticate(username=email, password=password) 

     if user is not None: 
      auth.login(request, user) 
      return HttpResponseRedirect('/loggedin/') 
     else: 
      return HttpResponseRedirect('/invalid/') 

나는이 시도하고 내가 USI를 생성 한 사용자를 인식하지 못하는 것 같다

하지만 지금은 자신의 이메일을 사용하여 사용자 정의 사용자를 인증하는 방법을 모른다는, 내가 사용합니까 관리 인터페이스. 내가 바꿀 필요가있는 다른 것들이 있습니까?

답변

1

사용자 지정 인증을 원할 경우 해당 양식을 작성하는 것이 좋습니다. 전자 메일과 암호를 사용하는 양식을 만든 다음 두 가지를 확인하는 클린 메서드를 작성합니다.

Try taking a look at this answer as an example.

+0

확인, 감사합니다, 나는 그것을 시도 줄거야, 그리고 난 당신이 완벽하게 작동 – user1150231

+0

를 게시하겠습니다 다시 한번 감사 – user1150231