Как сделать хеширование пароля в проекте django, я использую пользовательскую аутентификацию для входа?

Я хочу сделать возможным хэширование паролей для проекта django.

views.py для login.

def asset_login(request):
if request.method == 'POST':
    username = request.POST.get('user_id')
    password = request.POST.get('password')
    try:
        user = UserTable.objects.get(username=username, password=password)
        if user:
            if user.status == 'inactive':
                messages.error(request, 'Your account is inactive.')
                return redirect('asset_login')
            request.session['name'] = user.name
            request.session['role'] =user.role
            if user.role == 'admin':
                return redirect('admin_dashboard')
            elif user.role == 'ciso':
                return redirect('ciso_dashboard')
            elif user.role == 'fnhead':
                return redirect('fnhead_dashboard')
            elif user.role == 'systemadmin':
                return redirect('systemadmin_dashboard')
            elif user.role == 'assetowner':
                return redirect('assetowner_dashboard')
            else:
                messages.error(request, 'Unknown user position')
                return redirect('asset_login')  # Redirect to clear form and message
    except UserTable.DoesNotExist:
        messages.error(request, 'Invalid username or password')
        return redirect('asset_login')  # Redirect to clear form and message
return render(request, 'asset.html')

models.py для имени пользователя и пароля

class UserTable(models.Model):
sl_num = models.CharField(max_length=100)
name = models.CharField(max_length=100)
phone_no = models.CharField(max_length=100)
email = models.EmailField(blank=False, null=False)
location = models.CharField(max_length=100)
department = models.CharField(max_length=100)
status = models.CharField(max_length=100)
role=models.CharField(max_length=100)
username=models.CharField(max_length=100)
password=models.CharField(max_length=100)

def __str__(self):
    return self.name

Я хочу сделать paasword hasing возможным на проекте django, я использую пользовательскую аутентификацию вместо django build in autentication.

Вернуться на верх