Не удается загрузить данные при использовании автозаполнения в Django - PullRequest
0 голосов
/ 13 ноября 2018

Пытаясь использовать автозаполнение в 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?

1 Ответ

0 голосов
/ 14 ноября 2018

Исправлена ​​ошибка.

1-й) Была ошибка использования формы, отличной от правильной.

2nd) В моем шаблоне мне пришлось обратиться к определенному полю формы {{form.product_name}} , чтобы загрузить данные в мое текстовое поле.

<div>
        {% csrf_token %}
        {{ form.product_name }}
        </div>
        <script type="text/javascript" src="<script type="text/javascript" src="{% static 'admin/js/vendor/jquery/jquery.js' %}"></script>
        {{ form.media }} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...