Django -Фильтры, Django -таблицы автозаполнения поиска - PullRequest
0 голосов
/ 20 марта 2020

Я новичок в django, поэтому не очень знаком с вещами. Я пытаюсь выполнить автозаполнение одного из фильтров файлов и клиентов для django -таблиц.
Я пытался использовать django -autocomplete-light (dal). Использование Python3 также и django версии 2.2.8. Я считаю, что dal.autocomplete не имеет Select2QuerySetView или ModelSelect2.

Я использую пример django -tables 2 для фильтрации таблицы по полям, но мой «точный» набор фильтров, такой как файлы и клиенты, - это длинные списки, которые трудно читать, поэтому я хочу иметь возможность автозаполнения поиска в фильтре формы.

Любая помощь очень ценится.
filters.py

class ClientFilesFilter(FilterSet):
  def __init__(self, *args, **kwargs):
      super().__init__(*args, **kwargs)

  requestdatetime = django_filters.IsoDateTimeFromToRangeFilter(
      lookup_expr=('icontains'),
      widget=django_filters.widgets.RangeWidget(
          attrs={'type':'datetime-local'}
      )
  )


  #file = django_filters.ModelChoiceFilter(queryset=Files.objects.all(),
  #                                    widget=autocomplete.ModelSelect2(url='files-autocomplete'))

  class Meta:
      model = ClientFiles
      fields = {"client": ["exact"], "httpstatus": ["exact"], "objectsize": ["gte"], "referrer": ["icontains"]}

views.py

class FileAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
    qs = Files.objects.filter(name='file_name.zip')

    return qs


class FilteredPersonListView(ExportMixin, SingleTableMixin, FilterView):
  table_class = ClientFilesTable
  model = ClientFiles
  template_name = "bootstrap_template.html"

  filterset_class = ClientFilesFilter

  export_formats = ("csv", "json")

  def get_queryset(self):
      return super().get_queryset()

  def get_table_kwargs(self):
      return {"template_name": "django_tables2/bootstrap.html"}. 

urls.py

urlpatterns = [
    path("", FilteredPersonListView.as_view(), name="filtertableview"),
    path("api/", include('app.urls')),
    path("admin/", admin.site.urls),
    url(r'^file-autocomplete/$', FileAutocomplete.as_view(), name='file-autocomplete')
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...