title: Django authenticate always return None
body: <p>Found a lot of questions about it however couldn't find smth helps me.
  Settings.py contains Authentication Backend:</p>
  
  <pre><code>AUTHENTICATION_BACKENDS = (
      'django.contrib.auth.backends.ModelBackend',
  )
  </code></pre>
  
  <p>And auth user model:</p>
  
  <pre><code>AUTH_USER_MODEL = 'users.User'
  </code></pre>
  
  <p>User model inherits from AbstractUser class:</p>
  
  <pre><code>class User(AbstractUser):
     &lt;some_fields&gt;
  </code></pre>
  
  <p>And then 3 type of users inherit from User. I registered Client:</p>
  
  <pre><code>class Client(User, models.Model):
      status = models.CharField(max_length=1, default='C', editable=False)
      &lt;some_fields&gt;
  </code></pre>
  
  <p>When I activate user by activation link everything is OK. Client is authenticated user. However when I just try to enter by login and password authenticate always return None:</p>
  
  <pre><code>class LoginView(APIView):
      def post(self, request):
          qs = User.objects.filter(Q(email=request.data.get('user')) | Q(phone=request.data.get('user')))
          if qs.exists():
              username = qs.first().username
              password = request.data.get('password')
              user = authenticate(username=username, password=password)
              if user is not None:
                  login(request, user)
                  return Response(CMD(user.id), status=status.HTTP_200_OK)
          return Response({
              'error': 'Invalid login / password',
          }, status=status.HTTP_400_BAD_REQUEST)
  </code></pre>
  
  <p>I've logged qs which returned desired Client, also username and password are ok, but authenticate returns None.</p>
  
  <p>I think maybe problem is that Client isn't registered properly. This is the SignUp form:</p>
  
  <pre><code>class ClientSignupForm(forms.ModelForm):
      class Meta:
          model = Client
          exclude = [
              'username',
              'date_joined',
          ]
  
      def __init__(self, *args, **kwargs):
          self.request = kwargs.pop('request', None)
          super(ClientSignupForm, self).__init__(*args, **kwargs)
  
      def clean(self):
          &lt;actions to validate captcha&gt;
  
      def save(self):
          username = 'user' + str(User.objects.all().aggregate(Max('id'))['id__max'] + 1)
          return Client.objects.create_user(**self.cleaned_data, username=username)
  </code></pre>