Как стилизовать поле выбора 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.