Как сделать подтверждение пароля с помощью формы Django

Я создал (CustomUserForm), как показано ниже:

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

class CustomUserForm(UserChangeForm):
    username = forms.CharField(
        widget=forms.TextInput(attrs={'class': 'form-control my-2', 'placeholder': 'Enter Username'}))
    email = forms.CharField(
        widget=forms.TextInput(attrs={'class': 'form-control my-2', 'placeholder': 'Enter The Email'}))
    password1 = forms.CharField(
        widget=forms.PasswordInput(attrs={'class': 'form-control my-2', 'placeholder': 'Enter The Password'}))
    password2 = forms.CharField(
        widget=forms.PasswordInput(attrs={'class': 'form-control my-2', 'placeholder': 'Confirm Password'}))

    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']

и соответствующее представление для создания нового пользователя:

from django.contrib.auth.models import User
from django.contrib.auth.hashers import make_password

def register(request):
    if request.method == 'POST':
        form = CustomUserForm(request.POST)
        if form.is_valid():
            username=form.cleaned_data['username']
            email=form.cleaned_data['email']
            password=make_password(form.cleaned_data['password1'])
            data=User(username=username,email=email,password=password)
            data.save()            
            messages.success(request, "Registered Successfully")
            return redirect('/login/')
    else: #Here GET condition
        form = CustomUserForm()
    context = {'form': form}
    return render(request, 'auth/register.html', context)

а это register.html

все работает правильно, кроме подтверждения пароля, я могу написать разные пароли для пароля 1 и 2 и пользователь все равно создается ..... спасибо

Вы можете сравнить их по запросу регистра, если оба пароля одинаковы.

def register(request):
    if request.method == 'POST':
        form = CustomUserForm(request.POST)
        if form.is_valid():
            username=form.cleaned_data['username']
            email=form.cleaned_data['email']
            if form.cleaned_data['password1'] == form.cleaned_data['password2']: # new line
                password=make_password(form.cleaned_data['password1'])
                data=User(username=username,email=email,password=password)
                data.save()            
                messages.success(request, "Registered Successfully")
                return redirect('/login/')
    else: #Here GET condition
        form = CustomUserForm()
    context = {'form': form}
    return render(request, 'auth/register.html', context)
Вернуться на верх