Настройка django-autocomplete
Сделал представление
class BrandAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
if not self.request.user.is_authenticated:
return Brands.objects.none()
qs = Brands.objects.all()
print(qs)
if self.q:
qs = qs.filter(title_icontains=self.q)
return qs
Создал форму
class CustomerExcludeBrandTotalForm(forms.ModelForm):
class Meta:
model = CustomerExcludeBrand
fields = ('supplier_email', 'brand')
widgets = {
'supplier_email': forms.Select(attrs={'class': 'form-select'}),
'brand': autocomplete.ModelSelect2(url='suppliers_prices:brand-autocomplete'),
}
Добавил
path(
'brand-autocomplete/',
views.BrandAutocomplete.as_view(),
name='brand-autocomplete',
),
в шаблон добавил
{{ form.media }}
В итоге в шаблоне отображается только одно выбранное значение Brand
Что еще надо добавить, чтобы заработал подбор при вводе текста?
Нужно привязать виджет к форме;
Встройте макет поля автозаполнения непосредственно в файл
forms.py, используя настраиваемый виджетModelSelect2, связанный с именем вашего URL-адреса.
Примерно так:
widgets = {
'brand': autocomplete.ModelSelect2(url='brand-autocomplete')
}
Фрагмент текста файла шаблона
{% csrf_token %}
{{ formset.management_form }}
{% for form in formset.forms %}
**{{ form.media }}**
<div class="card">
<div class="card-body">{{ form.as_div }}</div>
</div>
{% endfor %}