Django формы для фильтрации

Я пытаюсь сделать форму для фильтрации таблицы по ее столбцам, условию и тексту, заданному пользователем (текст не обязателен). например, пользователь выбирает столбец, больше, меньше, равно и т.д.

формы

class FilterForm(forms.Form):
    COLUMN_FILTER_CHOICES = (
        ('title', 'Title'),
        ('quantity', 'Quantity'),
        ('distance', 'Distance'),
    )

    CONDITION_FILTER_CHOICES = (
        ('equals', 'Equals'),
        ('contains', 'Contains'),
        ('greater', 'Greater'),
        ('lower', 'Lower'),
    )

    search = forms.CharField(required=False)
    column_filter_field = forms.ChoiceField(choices=COLUMN_FILTER_CHOICES)
    condition_filter_field = forms.ChoiceField(choices=CONDITION_FILTER_CHOICES)

просмотров

class TableView(ListView):
    model = Table
    template_name = 'spa/index.html'
    context_object_name = 'table'
    paginate_by = 5

    def get_queryset(self):
        query = self.request.GET.get('search')
        column_filter_field = self.request.GET.get('column_filter_field')
        condition_filter_field = self.request.GET.get('condition_filter_field')

        return Table.objects.all()

    def get_context_data(self, *, object_list=None, **kwargs):
        context = super().get_context_data(**kwargs)
        context['tables'] = Table.objects.all()

        context['form'] = FilterForm(initial={
            'search': self.request.GET.get('search', ''),
            'column_filter_field': self.request.GET.get('column_filter_field', ''),
            'condition_filter_field': self.request.GET.get('condition_filter_field', ''),
        })
        return context

шаблон

<form action="" method="get" class="inline">
    {% csrf_token %}
    {{ form.column_filter_field }}
    {{ form.condition_filter_field }}
    {{ form.search }}

    <input type="submit" class="btn btn-default" value="Search">
</form>

форма сейчас работает, ответа от формы нет.

и мне нужно обновлять таблицу в реальном времени без обновления страницы, я не могу найти никакой информации для фильтрации в реальном времени, возможно ли это сделать с помощью django?

Я бы посоветовал вам использовать библиотеку javascript, такую как datatable.
. Ваше представление Django заполнит таблицу всеми записями, и у вас будет удобный интерфейс для поиска, фильтрации, упорядочивания данных по желанию пользователей, на стороне клиента, без обращения к бэкенду. Он также поддерживает обработку Ajax, если это необходимо.

Вернуться на верх