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 benjamin...@gmail.com
> 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
>> 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 :
>>>
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
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 :
>
>> 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. Th