Невозможно добавить дополнительные поля в регистрационную форму django

У меня возникла небольшая проблема. Я хочу создать регистрационную форму для моего сайта, который я создаю с помощью Django, и мне нужны некоторые пользовательские поля, которых нет в встроенной UserCreationForm в Django, и я не могу найти другой способ сделать это, по крайней мере, не на Youtube. Кто-нибудь здесь знает, как это сделать

Была бы большая помощь, если бы любой из вас мог помочь мне с этим Я действительно должен закончить этот сайт быстро

Вот мой код:-

models.py :-

class UserInfo(models.Model):
    user = models.OneToOneField(User,  on_delete=models.CASCADE, null=True, blank=True)
    full_name = models.CharField(max_length=200, null=True, blank=True)
    username = models.CharField(max_length=200, null=True, blank=True)
    email = models.EmailField(max_length=200, null=True, blank=True)
    password = models.CharField(max_length=200,null=True, blank=True)
    confirm_password = models.CharField(max_length=200, null=True, blank=True)
    profile_photo = models.ImageField(null=True, blank=True, upload_to='profile_photo/', 
    default='profile_photo/default.jpg')
    phone_number = models.CharField(max_length=10,null=True, blank=True)
    address = models.TextField(null=True, blank=True)
    pin_code = models.CharField(null=True, max_length=6, blank=True)
    region = models.CharField(null=True, max_length=200, blank=True)
    state = models.CharField(null=True, max_length=100, blank=True)
    created = models.DateTimeField(auto_now_add=True)
    id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, 
    editable=False)

    def __str__(self):
        return str(self.username)

forms.py :-

class RegisterForm(forms.ModelForm):
class Meta:
    model = UserInfo
    exclude = ['user', 'created', 'id', 'profile_photo']
    widgets = {
        'full_name': forms.TextInput(attrs={'class':'register-textinput input'}),
        'username': forms.TextInput(attrs={'class':'register-textinput1 input'}),
        'email': forms.EmailInput(attrs={'class':'register-textinput2 input'}),
        'phone_number': forms.TextInput(attrs={'class': 'register-textinput3 input'}),
        'password': forms.PasswordInput(attrs={'class': 'password-field-textinput input', 'id': 'passwordField'}),
        'confirm_password': forms.PasswordInput(attrs={'class': 'password-field-textinput input', 'id': 'cPasswordField'}),
        'state': forms.TextInput(attrs={'class': 'register-textinput5 input'}),
        'region': forms.TextInput(attrs={'class': 'register-textinput6 input'}),
        'address': forms.TextInput(attrs={'class': 'register-textinput7 input'}),
        'pin_code': forms.TextInput(attrs={'class': 'register-textinput8 input'}),
        }

views.py :-

def register(request):
form = RegisterForm

if request.method == "POST":
    form = RegisterForm(request.POST)
    if form.is_valid():
        user = form.save(commit=False)
        user.username = user.username.lower()
        user.save()

        messages.success(request, "User was successfully created")

context = {'form': form}
return render(request, 'user/register.html', context)

html:-

<div>
<div class="register-container">
  <div class="header-container">
    <h1 class="header-text heading"><span>register</span></h1>
  </div>
  <div class="register-container01">
    <form method="POST">
      {% csrf_token %}
      {{form.as_p}}
      <input type="submit" value="submit">
    </form>
    <div class="register-container19">
      <a href="{% url 'login' %}" class="register-navlink imp">
        <span>I have an account</span>
      </a>
    </div>
  </div>
</div>
Вернуться на верх