I have changed user.set_password(self.cleaned_data["password"]) to user.set_password(password). But I am getting the same result.
On Thu, Nov 12, 2015 at 8:57 PM, Andreas Kuhne <[email protected]> wrote: > As aRkadeFR says, you seam to have mixed code there.... > > The row: > user.set_password(self.cleaned_data["password"]) > > is taken from a form somewhere and won't work. It should instead be : > user.set_password(password) > > I suppose the password is going through to the create method via the > kwargs argument at the end of you create method. But if you change like I > said, everything should work. > > > Med vänliga hälsningar, > > Andréas Kühne > Software Development Manager > Suitopia Scandinavia AB > > 2015-11-12 16:20 GMT+01:00 aRkadeFR <[email protected]>: > >> Hello, >> >> I don't quite get the code in your method: 'MyUserManager.create_user': >> user.set_password(self.cleaned_data["password"]) >> >> You're in your Manager method but call self.cleaned_data ? >> >> You can set a breakpoint inside your method with pdb to see >> what's going on with your fields? >> >> >> On 11/12/2015 04:11 PM, Benjamin Smith wrote: >> >> I have my own custom User model, and its own Manger too. >> >> Models: >> >> 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'] >> >> >> Manager: >> >> 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 >> >> >> 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 email and password to >> confirm. Then I noticed that the password is displayed as plain text (eg. >> *strongpassword)*, and when changed the admin form to get the hashed >> password using *ReadOnlyPasswordHashField()* I get an error inside the >> password field, even though I used *set_password()* for the Manger >> inside the *create_user()* function. >> >> *Invalid password format or unknown hashing algorithm* >> >> >> However, if I manually do *set_password('strongpassword')* for that user >> inside the console, then only the password is hashed. Could you please help >> me solve this problem. Thank you. >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/django-users. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/CAM4YLWJNGdSj-rVAuhta_UA50Cjna8zg-c14FPxK%3DtdU49mngQ%40mail.gmail.com >> <https://groups.google.com/d/msgid/django-users/CAM4YLWJNGdSj-rVAuhta_UA50Cjna8zg-c14FPxK%3DtdU49mngQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> >> >> -- >> aRkadeFR >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/django-users. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/5644AE3A.5050609%40arkade.info >> <https://groups.google.com/d/msgid/django-users/5644AE3A.5050609%40arkade.info?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/CALXYUb%3D-V1fqJLJSbUaPUWaYX6srAf9s0qnZ0ZrTZOv9757o2w%40mail.gmail.com > <https://groups.google.com/d/msgid/django-users/CALXYUb%3D-V1fqJLJSbUaPUWaYX6srAf9s0qnZ0ZrTZOv9757o2w%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAM4YLWJ3tgcBSe_VcH6T6t4UbbA4EqTB0R0TueL2BjidZow7xg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

