add captcha impossibile form insert

Hi, my problem insert captcha in login, register, password-reset , impossible implemented.
My code:

urls.py:

from django.contrib.auth.views import *

from django.urls import path
from .views import *

urlpatterns = [
    path('register/', SignupPageView.as_view(), name ='register'),
    path('login/', LoginView.as_view(), name='login'),
    path('logout/', LogoutView.as_view(), name='logout'),
    path('change-password/', PasswordChangeView.as_view(), name='change-password'),
    path('password_change_done/', PasswordChangeDoneView.as_view(), name='password_change_done'),
    
    path('password-reset/',  PasswordResetView.as_view( ),  name='password_reset'),
    path('password-reset/done/',  PasswordResetDoneView.as_view(   ),  name='password_reset_done'),
    path('password-reset-confirm/<uidb64>/<token>/', PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
    path('password-reset-complete/', PasswordResetCompleteView.as_view(  ),  name='password_reset_complete'),   
    path('profile/', ProfiloUtente.as_view(), name='profile'),

]

models.py

from django.db import models
from django.utils.translation import gettext as _
from core.utils import *
from django.contrib.auth.models import AbstractUser, PermissionsMixin
from .managers import CustomUserManager
from django.utils import timezone
from stdimage import StdImageField
GENDER_CHOICES = (
    (0,"Uomo"),
    (1,"Donna")
)
from precise_bbcode.fields import BBCodeTextField


class CustomUser(AbstractUser, PermissionsMixin):

    objects = CustomUserManager()
    id = models.AutoField(primary_key=True)
    last_name = models.CharField(_('Last name'), null=True, blank=True, max_length=255)
    first_name = models.CharField(_('First name'), null=True, blank=True, max_length=255, )
    country = models.CharField(_('Country'), null=True, blank=True, max_length=255)
    location = models.CharField(_('Location'), null=True, blank=True, max_length=255)
    home_address = models.CharField(_('Home address'), null=True, blank=True, max_length=255)
    Postal_code = models.CharField(_('Postal code'), null=True, blank=True, max_length=255)
    city = models.CharField(_('City'), null=True, blank=True, max_length=255)
    username = models.CharField(_('Username'), unique=True, null=True, blank=True, max_length=255, error_messages={'unique':"Nome utente già in uso."} )
    email = models.EmailField(_('Email'), unique=True, error_messages={'unique':"Email già in uso."})
    sex = models.IntegerField(choices=GENDER_CHOICES, default=0, verbose_name=_('Sex'))
    birth_date=models.DateField(null=True, blank=True, verbose_name=_('birth date'))
    information = BBCodeTextField(_("Information"), blank=True, null=True)
    image = StdImageField(upload_to=PathRename('profile'), render_variations= resize_and_autorotate,  blank=True ,  variations={
         'avatar': (120, 120, True),
    }, delete_orphans=True, verbose_name=_('Photo'))
    is_superuser = models.BooleanField(default=False)
    is_staff = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    date_joined = models.DateTimeField(default=timezone.now)

    USERNAME_FIELD = 'username'
    EMAIL_FIELD = 'email'
    REQUIRED_FIELDS = ['email']


    def __str__(self):
        return f'{self.username}'.lower()

    # Override the save method of the model
    def save(self, *args, **kwargs):
        self.username = self.username.lower()
        super(CustomUser, self).save(*args, **kwargs)

forms.py

from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.utils.translation import gettext as _
from django.forms.widgets import DateInput
from .models import CustomUser
from django.forms.widgets import NumberInput
from django.conf import settings

class UserRegisterForm(UserCreationForm):

    def __init__(self, *args, **kwargs):
        super(UserRegisterForm, self).__init__(*args, **kwargs)
        self.fields['username'].required = True
        self.fields['email'].required = True
        self.fields['information'].required = False
        self.fields['sex'].required = False
        self.fields['birth_date'].required = False    
        

    class Meta:
        model = CustomUser
        fields = ['username', 'email', 'password1', 'password2', 'first_name','last_name','information', 'image', 'sex' , 'birth_date']
        username = forms.CharField(required=True, max_length=100, label=_('Username'))
        first_name = forms.CharField(required=True, label=_("First name"),)
        last_name = forms.CharField(required=True, label=_("Last name"),)
        email = forms.EmailField(required=True, max_length=100)
        sex = forms.ChoiceField(required=True, label=_("Sex"),)
        information = forms.Textarea(attrs={'rows': 30, 'cols': 10})
        birth_date = forms.DateField(widget=NumberInput(attrs={'type': 'date'}))
        widgets = {
            'sex' : forms.RadioSelect(attrs={'class': 'list-unstyled'}),
            'information' : forms.Textarea(),
            'birth_date': DateInput(format=('%Y-%m-%d'), attrs={'type': 'date'})
        }


class ProfileUpdateForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(ProfileUpdateForm, self).__init__(*args, **kwargs)
        self.fields['information'].required = False
        self.fields['image'].required = False
        self.fields['sex'].required = False
        self.fields['birth_date'].required = False
    class Meta:
        model = CustomUser
        first_name = forms.CharField(required=True, label=_("First name"),)
        last_name = forms.CharField(required=True, label=_("Last name"),)
        email = forms.EmailField(required=True, max_length=100)
        sex = forms.ChoiceField(required=True, label=_("Sex"),)
        information = forms.Textarea(attrs={'rows': 30, 'cols': 10})
        birth_date = forms.DateField(input_formats=settings.DATE_INPUT_FORMATS)

        fields = ['first_name', 'last_name', 'email','image', 'sex', 'information',  'birth_date']
 
        widgets = {
            'sex' : forms.RadioSelect(attrs={'class': 'list-unstyled'}),
            'information' : forms.Textarea(),
            'birth_date': DateInput(format=('%Y-%m-%d'), attrs={'type': 'date'})
        }


class ProfileUpdateFormAdmin(forms.ModelForm):
  
    def __init__(self, *args, **kwargs):
        super(ProfileUpdateFormAdmin, self).__init__(*args, **kwargs)
        self.fields['information'].required = False
        self.fields['image'].required = False
        self.fields['sex'].required = False
        self.fields['birth_date'].required = False
    class Meta:
        model = CustomUser
        first_name = forms.CharField(required=True, label=_("First name"),)
        last_name = forms.CharField(required=True, label=_("Last name"),)
        email = forms.EmailField(required=True, max_length=100)
        sex = forms.ChoiceField(required=True, label=_("Sex"),)
        information = forms.Textarea(attrs={'rows': 30, 'cols': 10})
        birth_date = forms.DateField(widget=NumberInput(attrs={'type': 'date'}))
        
        fields = ['first_name', 'last_name', 'email','image', 'sex', 'information', 'is_staff', 'is_superuser', 'birth_date']
 
        widgets = {
            'sex' : forms.RadioSelect(attrs={'class': 'list-unstyled'}),
            'information' : forms.Textarea(),
            'birth_date': DateInput(format=('%Y-%m-%d'), attrs={'type': 'date'})
        }

my use module:

use module from contact form no problem.

How to implemented login, register, password-reset ?

Thanks.