Как стилизовать поле выбора ModelForm в Django?

Я пытаюсь стилизовать опции поля выбора для лекарств в рецептурной форме ModelForm в таком формате:

<select>
                    <option value="">Select a Medicine</option>
                    <optgroup label="Favorite Medicines">
                      <option value="First">Brufen - Abbott - 600 Mg - Tablets</option>
                    </optgroup>
                    <optgroup label="Other">
                      <option value="First">Brufen - Abbott - 400 Mg - Tablets</option>
                    </optgroup>
</select> 

Где я могу получить значения из моей модели лекарств, и проверить, есть ли они в списке любимых лекарств пользователя, если да, то лекарство должно существовать в группе "Любимые лекарства", в противном случае оно должно отображаться в группе "Другое".

Это мой forms.py:

class PatientPrescriptionForm (ModelForm):
    patient = forms.CharField(
        label='', widget=forms.TextInput(attrs={'class': "text-field w-input", 'maxlength': "256", 'name': "prescPatient", 'data-name': "prescPatient", 'placeholder': "Add a Patient", 'id': "prescPatient"}))
    category = forms.ChoiceField(
        label='', choices=Medicine.CATEGORY, widget=forms.Select(attrs={'id': "PrescMedCat", 'name': "PrescMedCat", 'required': "", 'data-name': "PrescMedCat", 'class': "select-field w-select"}))
    dose = forms.CharField(
        label='', widget=forms.TextInput(attrs={'class': "text-field small w-input", 'maxlength': "256", 'name': "PrescDose", 'data-name': "PrescDose", 'placeholder': "Dose", 'id': "PrescDose", 'required': ""}))
    dose_unit = forms.CharField(
        label='', widget=forms.TextInput(attrs={'class': "text-field small w-input", 'maxlength': "256", 'name': "PrescDoseUnit", 'data-name': "PrescDoseUnit", 'placeholder': "Dose Unit", 'id': "PrescDoseUnit", 'required': ""}))
    EN_name = forms.ChoiceField(
        label='', widget=forms.Select(attrs={'id': "prescMedName", 'name': "prescMedName", 'required': "", 'data-name': "prescMedName", 'class': "select-field w-select"}))
    EN_route = forms.ChoiceField(
        label='', widget=forms.Select(attrs={'id': "prescRoute", 'name': "prescRoute", 'data-name': "prescRoute", 'class': "select-field-2 w-select"}))
    EN_frequency = forms.ChoiceField(
        label='', widget=forms.Select(attrs={'id': "prescFrequency", 'name': "prescFrequency", 'data-name': "prescFrequency", 'class': "select-field-2 w-select"}))
    duration = forms.CharField(
        label='', widget=forms.TextInput(attrs={'class': "text-field small w-input", 'maxlength': "256", 'name': "prescDuration", 'data-name': "prescDuration", 'placeholder': "Duration", 'id': "prescDuration", 'required': ""}))
    notes = forms.CharField(
        label='', widget=forms.Textarea(attrs={'placeholder': "Notes", 'maxlength': "5000", 'id': "prescNotes", 'name': "prescNotes", 'data-name': "prescNotes", 'class': "textarea-4 w-input"}))

    class Meta:
        model = MedicinePrescription
        fields = '__all__'

Это мой models.py:

class MedicinePrescription(models.Model):
    medicine = models.ForeignKey(Medicine, null=True, on_delete=SET_NULL)
    prescription = models.ForeignKey(
        Prescription, null=True, on_delete=SET_NULL)
    frequency = models.ForeignKey(Frequency, null=True, on_delete=SET_NULL)
    dose = models.FloatField(null=True)
    dose_unit = models.CharField(max_length=50, null=True)
    duration = models.CharField(max_length=50, null=True)

class Medicine(models.Model):
    CATEGORY = (
        ('All', 'All'),
        ('Vitamins', 'Vitamins'),
        ('Analgesics', 'Analgesics'),
        ('Antacids', 'Antacids'),
        ('Antianxiety', 'Antianxiety'),
        ('Antifungals', 'Antifungals'),
        ('Antihypertensives', 'Antihypertensives'),
        ('Antipyretics', 'Antipyretics'),

    )
    category = models.CharField(max_length=100, null=True, choices=CATEGORY)
    stock = models.PositiveIntegerField(null=True)
    dose = models.FloatField(null=True)
    EN_name = models.CharField(max_length=100, null=True)
    EN_brand = models.CharField(max_length=100, null=True)
    EN_formula = models.CharField(max_length=100, null=True)
    EN_doseUnit = models.CharField(max_length=50, null=True)
    EN_route = models.CharField(max_length=50, null=True)
    AR_name = models.CharField(max_length=100, null=True)
    AR_brand = models.CharField(max_length=100, null=True)
    AR_formula = models.CharField(max_length=100, null=True)
    AR_doseUnit = models.CharField(max_length=50, null=True)
    AR_route = models.CharField(max_length=50, null=True)

Пожалуйста, помогите мне, если у вас есть идеи, как это сделать, так как я новичок в Django.

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