Did you try make_password before saving data from registration form ?

On Wed, 25 Jan 2023 at 18:36, Roger Mukai <[email protected]> wrote:

> @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
>>>>>>>> .
>>>>>>>> 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
>>>>>>>> .
>>>>>>>>
>>>>>>>> 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
>>>>>>> .
>>>>>>>
>>>>>>> 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.
>>>>>>
>>>>>
>>>>> --
>>>>> 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
>>>>> .
>>>>
>>>>
>>>>> 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
> .
>

-- 
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/CAP4VW2UGcptss8RXzQcuirOE7JdPxccKDC69bSCyVoc_4%3DBV1g%40mail.gmail.com.

Reply via email to