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, если это необходимо.