@Tejas or @Sebs, do you still have a question how to do this? I think I figured it out
On Tuesday, December 6, 2022 at 7:25:08 PM UTC-5 [email protected] wrote: > Hey *Ben*, please help with the repo for the same code. I'm getting same > error > here. > > On Saturday, 7 May 2022 at 22:37:32 UTC Tejas Agrawal wrote: > >> Hey Benjamin, can you please share your github repo for the same code. >> I'm also getting the same error in one of my project, can't figure out how >> to solve it. >> >> On Friday, November 13, 2015 at 6:11:09 PM UTC+5:30 [email protected] >> wrote: >> >>> The problem was, when creating a custom user, one has to define a custom >>> model form and model admin that handles the password properly. After that >>> it was solved. >>> >>> Thank you. >>> >>> On Thu, Nov 12, 2015 at 9:25 PM, Andreas Kuhne <[email protected]> >>> wrote: >>> >>>> Try to debug and check what your password value is after the >>>> set_password() statement. Also have you checked the database after trying >>>> to create a user with the new method? It should be hashed in the database. >>>> This is stuff that should "just work" in django (it's regulated by the >>>> AbstractBaseUser and is the same that I am using in a project). >>>> >>>> You did restart the django shell after changing the code? >>>> >>>> 2015-11-12 16:44 GMT+01:00 Benjamin Smith <[email protected]>: >>>> >>>>> 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 >>>>> >>>>> <https://groups.google.com/d/msgid/django-users/CAM4YLWJ3tgcBSe_VcH6T6t4UbbA4EqTB0R0TueL2BjidZow7xg%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/CALXYUbksz%3DUN60j-pt0YbfCq_Zb2x1ESnOoZjbQW6K%2BssNxKVQ%40mail.gmail.com >>>> >>>> <https://groups.google.com/d/msgid/django-users/CALXYUbksz%3DUN60j-pt0YbfCq_Zb2x1ESnOoZjbQW6K%2BssNxKVQ%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 view this discussion on the web visit https://groups.google.com/d/msgid/django-users/8e7272bd-ef57-4817-9ceb-3956e0f7915bn%40googlegroups.com.

