O Django não armazena campo de senha no modelo de usuário

Criei uma página de inscrição usando os formulários de inscrição incorporados do Django.

forms.py

from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User


class SignUpForm(UserCreationForm):
    email = forms.EmailField(max_length=254, help_text='Please provide a valid email address.')
    class Meta:
        model = User
        fields = ('username', 'email', 'password1', 'password2')

    def clean(self):
        cleaned_data = super(SignUpForm, self).clean()
        username = cleaned_data.get("username")
        email = cleaned_data.get("email")


        check_email = User.objects.filter(email=email)
        if check_email:
            raise forms.ValidationError(
                "You are already registered!")
            return cleaned_data

        check_username = User.objects.filter(username=username)
        if check_username:
            raise forms.ValidationError(
                "A user with that username already exists")
            return cleaned_data

Em meu views.py, é assim que faço a autenticação para inscrição

views.py

@csrf_exempt
def signup_users(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=raw_password)
            print("signup authencticate", user)
            login(request, user)
            return redirect('/')
    else:
        form = SignUpForm()
    return render(request, 'signup.html', {'form': form})

Aqui está o meu código para lidar com o login do usuário

@csrf_exempt
def login_view(request):
    print(request.user.is_authenticated())
    if request.POST:
        email = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(email=email, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                return HttpResponseRedirect('/')
        else:
            return render(request, "login.html")   

    else:
        return render(request, "login.html")

Quando me inscrevo, tudo parece bem, mas quando tento fazer login, isso simplesmente não me permite fazer login.

Então, quando eu verifiquei odjango admin, foi o que eu encontrei

Username: tech1
Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
Password:
Invalid password format or unknown hashing algorithm.
Raw passwords are not stored, so there is no way to see this user's password, but you can change the password using this form.

Não entendo muito bem por que a senha do usuário não é armazenada no momento da inscrição?

Eu procurei e descobri a partir desta respostausing User.objects.get_or_create () fornece formato de senha inválida no django? que o django criptografa a senha antes de armazenar e eu devo usar algo como

user, created = User.objects.get_or_create(username="testuser2")
user.set_password('123')

Mas não tenho certeza de onde colocar isso no meu código ou como isso ajuda? O que está acontecendo?

questionAnswers(1)

yourAnswerToTheQuestion