Пытаясь использовать автозаполнение в Django, я сталкиваюсь с проблемой, что я не могу загрузить свои данные в нужное текстовое поле в моем шаблоне.Я следую инструкциям здесь: https://django -autocomplete-light.readthedocs.io / en / 3.1.3 / tutorial.html
My view.py
class ProductAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
# Don't forget to filter out results depending on the visitor !
if not self.request.user.is_authenticated():
return Product.objects.none()
qs = Product.objects.all()
if self.q:
qs = qs.filter(product_name__contains=self.q)
return qs
Мои модели.py
class Product(models.Model):
product_id = models.CharField(max_length=30, blank=True, null=True,unique=True)
product_name = models.CharField(max_length=60, blank=True, null=True)
Мои формы.py
class ProductForm(ModelForm):
product_name = ModelChoiceField(queryset=Product.objects.all(),widget=autocomplete.ModelSelect2(url='product-autocomplete'))
class Meta:
model = Product
fields = ('__all__')
Мои urls.py
url(r'^product-autocomplete/$', views.ProductAutocomplete.as_view(),name='product-autocomplete'),
Мой шаблон.html
<div>
<form action="" method="post">
{% csrf_token %}
<input id="product_name" type="text" name="product_name" class="form-control" placeholder="type a product:" >
</form>
</div>
<script type="text/javascript" src="{% static 'admin/js/vendor/jquery/jquery.js' %}"></script>
{{ form.media }}
Я импортировал статический файл и проверил, что БД возвращает данные при доступе к / product-autocomplete / url.
Отличие от учебника заключается в том, что я хочу использовать текстовое поле, а не форму.
Более того, я использовал абсолютный путь для загрузки файла jquery.js, и проблема остается.
Любая идея, почему я не могу загрузить названия продуктов внутри своего текстового поля, чтобы иметь автозаполнениеTextField?