Django: Как изменить дизайн внешнего ключа при использовании forms.py?

Вот моя модель пациента и формы:

class Patient(models.Model):
    def __str__(self):
        return f"{self.first_name} {self.last_name}"
    doctor = models.ForeignKey(User, on_delete=models.CASCADE)
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    sex = models.CharField(max_length=20)
    phone = models.IntegerField()
    birth_date = models.DateField()

class PatientForm(forms.ModelForm):
    BIRTH_YEAR_CHOICES = []
    for years in range(1900,2021):
        BIRTH_YEAR_CHOICES.append(str(years))
    sex_choice = [('1', 'Homme'), ('2', 'Femme')]
    sex = forms.ChoiceField(widget=forms.Select(attrs={'class':'form-control'}), choices=sex_choice)
    doctor = forms.ModelChoiceField(widget=forms.Select(attrs={'class': 'form-control'}),queryset=Patient.objects.all())
    first_name = forms.CharField(widget= forms.TextInput(attrs={'class':'form-control'}))
    last_name = forms.CharField(widget= forms.TextInput(attrs={'class':'form-control'}))
    phone = forms.CharField(widget= forms.TextInput(attrs={'class':'form-control'}))
    birth_date = forms.DateField(widget=forms.SelectDateWidget(years=BIRTH_YEAR_CHOICES,attrs={'class': 'form-control'}))

    class Meta:
        model = Patient
        fields = '__all__'

    def __init__(self, *args, **kwargs):
        super(PatientForm, self).__init__(*args, **kwargs)
        self.fields['birth_date'].input_formats = ('%Y-%m-%d')

А это register.html:

<form method="POST">{% csrf_token %}
    <div class="input-group">
        <span class="input-group-text">Prénom:</span>
        {{form.first_name}}
    </div>
    <div class="input-group">
        <span class="input-group-text">Nom:</span>
        {{form.last_name}}
    </div>
    <div class="input-group">
        <span class="input-group-text">Sex</span>
        {{form.sex}}
    </div>
    <div class="input-group">
        <span class="input-group-text">Telephone</span>
        {{form.phone}}
    </div>
    <div class="input-group">
        <span class="input-group-text">Date de naissance</span>
        {{form.birth_date}}
    </div>
    <div class="input-group">
        <span class="input-group-text">Docteur</span>
        <select name="doctor_choice">
            {% for doctor in doctors %}
                <option value="{{doctor.pk}}">{{doctor.first_name}} {{doctor.last_name}}</option>
            {% endfor %}
        </select>
    </div>

Аттрс={'class':'form-control'} работает для всех полей, кроме поля doctor, которое является ForeignKey в модели Patient. Поэтому, когда я искал об этом, я нашел, что они используют doctor = forms.ModelChoiceField, но это все равно не работает, и 'class':'form-control' пока не работает

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