Django ChoiceField с пользовательскими формами

Я относительно недавно познакомился с Django и изучил несколько руководств по созданию регистрационных форм с помощью Django.

**This is the html form code**
<form action="{% url 'register' %}" method="post">
                {% csrf_token %}
                <div class="form-row">
                    <div class="col form-group">
                        <label>First name</label>
                        {{ form.first_name }}
                    </div> <!-- form-group end.// -->
                    <div class="col form-group">
                        <label>Last name</label>
                        {{ form.last_name }}
                    </div> <!-- form-group end.// -->
                </div> <!-- form-row end.// -->
                <div class="form-row">
                    <div class="col form-group">
                        <label>Email</label>
                        {{ form.email }}
                    </div> <!-- form-group end.// -->
                    <div class="form-group col-md-6">
                        <label>Directorate</label>
                        <select name="directorate" class="form-control" required>
                            <option value="" disabled selected>Select</option>
                            {% for i in form.directorate %}
                            <option value=""></option>
                            {% endfor %}
                        </select>
                    </div> <!-- form-group end.// -->
                </div> <!-- form-row end.// -->
                <div class="form-row">
                    <div class="form-group col-md-6">
                        <label>Create password</label>
                        {{ form.password }}
                    </div> <!-- form-group end.// -->
                    <div class="form-group col-md-6">
                        <label>Repeat password</label>
                        {{ form.confirm_password }}
                    </div> <!-- form-group end.// -->
                </div>
                <div class="form-group">
                    <button type="submit" class="btn btn-primary btn-block"> Register </button>
                </div> <!-- form-group// -->
            </form>
**This is models.py code**
class Account(AbstractBaseUser):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    username = models.CharField(max_length=50, unique=True)
    email = models.EmailField(max_length=100, unique=True)
    directorate = models.CharField(max_length=100)

    # required
    date_joined = models.DateTimeField(auto_now_add=True)
    last_login = models.DateTimeField(auto_now_add=True)
    is_admin = models.BooleanField(default=False)
    is_staff = models.BooleanField(default=False)
    is_active = models.BooleanField(default=False)
    is_superadmin = models.BooleanField(default=False)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['username', 'first_name', 'last_name']

    objects = MyAccountManager()
**This is views.py code**
from django.http import HttpResponse
from django.shortcuts import render
from .forms import RegistrationForm
from .models import Account


def register(request):
    if request.method == 'POST':
        form = RegistrationForm(request.POST)
        if form.is_valid():
            first_name = form.cleaned_data['first_name']
            last_name = form.cleaned_data['last_name']
            email = form.cleaned_data['email']
            username = email.split('@')[0]
            password = form.cleaned_data['password']
            directorate = form.cleaned_data['directorate']

            user = Account.objects.create_user(first_name=first_name, last_name=last_name, email=email, directorate=directorate, username=username, password=password)
            user.save()
    else:        
        form = RegistrationForm()
    context = {
        'form': form,
    }
    return render(request, 'accounts/register.html', context)
**This is forms.py code**
from django import forms
from .models import Account

DIRECTORATE_CHOICES = [
    ("E", "Education"),
    ("H", "Health"),
    ("T", "Transport"),
    ]


class DirectorateChoices(forms.Form):
    directorate = forms.ChoiceField(choices=DIRECTORATE_CHOICES,widget=forms.Select(attrs={
        'class':'form-control'}), required=True)


class RegistrationForm(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput(attrs={
        'placeholder': 'Enter your password',
    }))
    confirm_password = forms.CharField(widget=forms.PasswordInput(attrs={
        'placeholder': 'Confirm your password',
    }))

    class Meta:
        model = Account
        fields = ['first_name', 'last_name',  'email', 'directorate', 'password']

    def __init__(self, *args, **kwargs):
        super(RegistrationForm, self).__init__(*args, **kwargs)
        self.fields['first_name'].widget.attrs['placeholder'] = 'First name'
        self.fields['last_name'].widget.attrs['placeholder'] = 'Last name'
        self.fields['email'].widget.attrs['placeholder'] = 'Email address'
        self.fields['directorate'].widget.attrs['placeholder'] = 'Select your directorate'
        self.fields['password'].widget.attrs['placeholder'] = 'Enter password'
        self.fields['confirm_password'].widget.attrs['placeholder'] = 'Confirm password'
        for field in self.fields:
            self.fields[field].widget.attrs['class'] = 'form-control'

](https://i.stack.imgur.com/ovIOQ.png)

Однако я хочу ввести ChoiceField в мою регистрационную форму, но из прочитанного и прочитанного в Youtube, поле, которое должно загружать варианты выбора, не загружается. Пожалуйста, помогите мне в этом!!![Это моя регистрационная форма

Вернуться на верх