title: django custom user model password is not being hashed
body: <p>I have my own custom User model, and its own Manger too. </p>
  
  <p>models:</p>
  
  <pre><code>class MyUser(AbstractBaseUser, PermissionsMixin):
      email = models.EmailField(max_length=255, unique=True)
      first_name = models.CharField(max_length=35)
      last_name = models.CharField(max_length=35)
      username = models.CharField(max_length=70, unique=True)
      date_of_birth = models.DateField()
      is_active = models.BooleanField(default=True)
      is_admin = models.BooleanField(default=False)
  
      @property
      def is_staff(self):
          return self.is_admin
  
      def get_full_name(self):
          return ('%s %s') % (self.first_name, self.last_name)
  
      def get_short_name(self):
          return self.username
  
      objects = MyUserManager()
      USERNAME_FIELD = 'email'
      REQUIRED_FIELDS = ['first_name', 'last_name', 'username', 'date_of_birth']
  </code></pre>
  
  <p>manager:</p>
  
  <pre><code>class MyUserManager(BaseUserManager):
      def create_user(self, email, first_name, last_name, username, date_of_birth, password=None, **kwargs):
          if not email:
              raise ValueError('User must have an email address')
  
          user = self.model(
              email=self.normalize_email(email),
              first_name=first_name,
              last_name=last_name,
              username=username,
              date_of_birth=date_of_birth,
              **kwargs
          )
          user.set_password(self.cleaned_data["password"])
          user.save(using=self._db)
          return user
  
      def create_superuser(self, email, first_name, last_name, username, date_of_birth, password, **kwargs):
          user = self.create_user(
              email,
              first_name=first_name,
              last_name=last_name,
              username=username,
              date_of_birth=date_of_birth,
              password=password,
              is_superuser=True,
              **kwargs
          )
          user.is_admin = True
          user.save(using=self._db)
          return user
  </code></pre>
  
  <p>Everything works when creating a new user without any errors. But when I try to login I can't. So I checked the user's password to confirm and the password is displayed as plain text <code>strongpassword</code>, and when changed admin form to get the hashed password using <code>ReadOnlyPasswordHashField</code> I get an error inside the password field, even though I used <code>set_password()</code> for the Manger inside the <code>create_user()</code> function. </p>
  
  <blockquote>
    <blockquote>
      <p>Invalid password format or unknown hashing algorithm</p>
    </blockquote>
  </blockquote>
  
  <p>However, if I manually do <code>set_password('strongpassword')</code> for that user it is then hashed. Could you please help me solve this problem. Thank you.</p>