Django - После регистрации данные должны попасть в 2 разные таблицы (клиент и пользователь)

Я создаю сайт электронной коммерции, на котором люди могут выбрать, входить или нет в систему, но все равно могут сделать заказ и оформить заказ (даже если вы AnonymousUser или гостевой пользователь). Сейчас я делаю форму входа и регистрации на своем сайте. Форма входа работает и выглядит хорошо, но форма регистрации не работает и выдает ошибку "RelatedObjectDoesNotExist at / User has no customer."

".

Я думаю, что причина в том, что когда я регистрируюсь, он только создает User в базе данных, но не регистрирует ничего в таблице Customer (которая состоит из Name и Email). Как я могу зарегистрировать Customer и User одновременно при нажатии кнопки "Submit"? И как я могу сделать так, чтобы этот конкретный пользователь имел только статус "Сотрудник" и не мог вносить изменения на сайте администратора?

Также я хочу добавить новые поля в форме регистрации для имени и электронной почты, которые будут идти непосредственно в таблицу Customer. Я пытался сделать это, но это не работает и выдает ошибку, которая говорит "django.core.exceptions.FieldError: Unknown field(s) (name) specified for User".

Вот что я сделал:

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

class CustomUserCreationForm(UserCreationForm):
    name = models.CharField(max_length=200, null=True)
    email = models.CharField(max_length=200)

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

SUMMARY:

Я хочу добавить дополнительные поля в форму регистрации под названием Name и Email. Затем после щелчка на форме Register я хочу создать User и Customer одновременно. Но User должен иметь только "Статус сотрудника" и не может вносить изменения на сайте администратора. А поле Имя и Email должны попасть в таблицу Customer с созданным мной пользователем.

Вот скриншот моей формы Register form: enter image description here

Вот мой forms.py файл:

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

class CustomUserCreationForm(UserCreationForm):

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

    def __init__(self, *args, **kwargs):
        super(CustomUserCreationForm, self).__init__(*args, **kwargs)
        self.fields['username'].widget.attrs.update({'class':'form-control','placeholder':'Enter Username'})
        self.fields['password1'].widget.attrs.update({'class':'form-control','placeholder':'Enter Password'})
        self.fields['password2'].widget.attrs.update({'class':'form-control','placeholder':'Confirm Password'})

Вот мой views.py файл:

def loginUser(request):
    page = 'login'

    if request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']

        user = authenticate(request, username=username, password=password)
        
        print('USER:', user)

        if user is not None:
            login(request, user)
            return redirect('/')

    return render(request, 'store/login_register.html', {'page': page})

def logoutUser(request):
    logout(request)
    return redirect('/')

def registerUser(request):
    page = 'register'
    form = CustomUserCreationForm()

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

            user = authenticate(request, username=user.username, password=request.POST['password1'])

            if user is not None:
                login(request, user)
                return redirect('/')

    context = {'form': form, 'page': page}
    return render(request, 'store/login_register.html', context)

Вот мой models.py файл:

from django.db import models
from django.contrib.auth.models import User

# Create your models here.
class Customer(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
    name = models.CharField(max_length=200, null=True)
    email = models.CharField(max_length=200)

    def __str__(self):
        return self.name 

Вот мой register.html файл:

<form class="form" method="POST">
                    {% csrf_token %}
                        <h2> REGISTER </h2>
                        <h4> Create your account now! </h4>
                        <br />
                        {% for field in form %}
                            <div class="mb-3">
                                <label for="exampleInputPassword1" class="form-label">{{field.label}}:</label>
                                {{field}}
                            </div>
                        {% endfor %}
                        <button type="submit" class="btn btn-primary">Submit</button>
                        <br />
                        <p> Already have an account? <a href="{% url 'login' %}">Login here</a> </p>
                    </form>
Вернуться на верх