Использование поля автозаполнения ввода jQuery UI в Django
Я пытаюсь создать поле ввода текста с автозаполнением в классе ModelForm
, поэтому я нашел библиотеку jQuery UI, чтобы сделать часть поля ввода с автозаполнением, и вот что я сделал до сих пор, но это не сработало со мной, поэтому не могли бы вы проверить это и помочь мне?
Это мой model.py
файл:
class Frequency(models.Model):
EN_frequency = models.CharField(max_length=100, null=True)
def __str__(self):
return self.EN_frequency
class MedicinePrescription(models.Model):
medicine = models.ForeignKey(Medicine, null=True, on_delete=CASCADE)
prescription = models.ForeignKey(
Prescription, null=True, on_delete=SET_NULL)
frequency = models.ForeignKey(Frequency, null=True, on_delete=CASCADE)
Это мой urls.py
файл:
path('CreatePatientPrescriptionForm/<int:pk>/', views.CreatePatientPrescriptionFormView.as_view(),
name='CreatePatientPrescriptionForm'),
Это мой views.py
файл:
class CreatePatientPrescriptionFormView(CreateView):
template_name = 'MedCareApp/patientPrescription-form.html'
model = Prescription
form_class = PatientPrescriptionForm
def get_frequency_list(request):
if 'term ' in request.GET:
queryset = Frequency.objects.filter(
EN_frequency__istartswith=request.GET.get('term'))
titles = list()
for frequency in queryset:
titles.append(frequency.EN_frequency)
return JsonResponse(titles, safe=False)
return request
def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
random_user = User.objects.get(id=1)
kwargs.update({
'medicine_choices': get_medicine_list(random_user),
'frequency': self.get_frequency_list()
})
return kwargs
Это мой template.html
файл:
<script>
$( function() {
$( "#id_frequency" ).autocomplete({
source: '{% url '+CreatePatientPrescriptionForm+' %}'
});
} );
</script>
Это мой forms.py
файл:
class PatientPrescriptionForm (ModelForm):
frequency = forms.CharField()
class Meta:
model = MedicinePrescription
fields = ['frequency']
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['frequency'].widget.attrs.update(
{'class': 'text-field small w-input', 'maxlength': '256', 'placeholder': 'Frequency'})