Мой пароль пользователя не изменяется, хотя при использовании представлений сброса пароля и изменения пароля ошибок не возникает

Я довольно новичок в django. Я использую пользователя Abstract, я пытался изменить пароль с помощью представлений PasswordReset, PasswordChangeViews и даже на учетной записи администратора, а также с помощью командной строки. Я не получаю никаких ошибок, каждый раз все вроде бы работает нормально, но когда я пытаюсь войти в систему снова, я понимаю, что старый пароль все еще остается прежним. Я не знаю, что еще я могу сделать

Я пробовал использовать учетную запись администратора, PasswordChangeViews, PasswordResetViews и командную строку. Я не получаю никаких ошибок. Кажется, что все работает нормально, но когда я вхожу в систему после смены пароля, пароль по-прежнему не меняется

#Модель пользователя

class User(AbstractUser):
    class Role(models.TextChoices):
        ADMIN="ADMIN",'Admin'
        STAFF="STAFF",'Staff'
        CUSTOMER="CUSTOMER",'Customer'
        CENTRAL="CENTRAL",'Central'
        MONITOR="MONITOR",'Monitor'
    username = models.CharField(max_length=200, null=True)
    name = models.CharField(max_length=200, null=True)
    email = models.EmailField(null=True, unique=True)
    role=models.CharField(max_length=50, choices=Role.choices, null=True)
    updated = models.DateTimeField(auto_now =True)
    created =models.DateTimeField(auto_now_add=True)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS= ['username','role']
    
    class Meta:
        
        ordering =['-updated','-created']
    

    def save(self, *args, **kwargs):
        if not self.pk:
            self.role= self.base_role
            return super().save(*args,**kwargs)

#Просмотры

def passwordChange(request):
    user=User.objects.get(username=request.user.username)
    
    if request.method == 'POST':
        form = ChangePasswordForm(user=user,data=request.POST)
        if form.is_valid():
            form.save()
            
            userp=User.objects.get(email=request.user)
           
            
            userp.set_password(form.clean_new_password2()) 
            userp.is_active=True
            userp.save()
            update_session_auth_hash(request, userp)
            print(userp.check_password('XXXXXXXX')) #(XXXXx is actually hardedcoded password to chack if password changed at this point and i get True)
            print(userp)
            
            print('saved')
            
            
            
            messages.success(request, 'Your password was successfully updated!')
            return redirect('password_success')
        else:
            messages.error(request, 'Please correct the error below.')
    else:
        form= ChangePasswordForm(user=user)
    return render(request,'base/password.html',{'form':form})

#form

class ChangePasswordForm(PasswordChangeForm):
    class Meta:
        model=User
        fields='__all__'

#url

path ('password_change/', views.passwordChange, name='password'),
    path ('password_success/', views.password_success, name='password_success'),
    path ('reset_password/', auth_views.PasswordResetView.as_view(),name="reset_password"),
    path ('reset_password_sent/', auth_views.PasswordResetDoneView.as_view(), name='password_reset_done'),
    path ('reset/<uidb64>/<token>', auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
    path ('reset_password_complete/', auth_views.PasswordResetCompleteView.as_view(), name='password_reset_complete')

#admin

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User

# Register your models here.
class CustomUserAdmin(UserAdmin):
    model = User
    
admin.site.register(User, CustomUserAdmin)
Вернуться на верх