Сортировка по возрастанию и убыванию с использованием django-фильтра - PullRequest
0 голосов
/ 26 января 2019

У меня есть следующий код для нескольких фильтров:

from .models import ProductLaptop
import django_filters

class ProductLaptopFilter(django_filters.FilterSet):
    laptops_name = django_filters.CharFilter(lookup_expr='icontains')
    laptops_price = django_filters.NumberFilter()
    laptops_price__gt = django_filters.NumberFilter(field_name='laptops_price', lookup_expr='gt')
    laptops_price__lt = django_filters.NumberFilter(field_name='laptops_price', lookup_expr='lt')


    class Meta:
        model = ProductLaptop
        fields = ['laptops_name', 'laptops_price', 'brand_name']

HTML-коды для этого:

{% load widget_tweaks %}

{% block content %}
  <form method="get">
    <div class="well">
      <h4 style="margin-top: 0">Filter</h4>
      <div class="row">
        <div class="form-group col-sm-4 col-md-3">
          {{ filter.form.laptops_name.label_tag }}
          {% render_field filter.form.laptops_name class="form-control" %}
        </div>
        <div class="form-group col-sm-4 col-md-3">
          {{ filter.form.laptops_price.label_tag }}
          {% render_field filter.form.laptops_price class="form-control" %}
        </div>
        <div class="form-group col-sm-4 col-md-3">
          {{ filter.form.brand_name.label_tag }}
          {% render_field filter.form.brand_name class="form-control" %}
        </div>
        <div class="form-group col-sm-4 col-md-3">
          {{ filter.form.laptops_price__gt.label_tag }}
          {% render_field filter.form.laptops_price__gt class="form-control" %}
        </div>
      <div class="form-group col-sm-4 col-md-3">
          {{ filter.form.laptops_price__lt.label_tag }}
          {% render_field filter.form.laptops_price__lt class="form-control" %}
        </div>

      </div>
      <button type="submit" class="btn btn-primary">
        <span class="glyphicon glyphicon-search"></span> Search
      </button>
    </div>
  </form>

Что дает мне вид как ниже: enter image description here

Здесь я хочу добавить опцию, где люди могут сортировать элементы в порядке возрастания и убывания. Кто-нибудь может дать мне несколько советов, как я могу это реализовать?

1 Ответ

0 голосов
/ 26 января 2019

Для этого вы можете использовать OrderingFilter из django-filter.Создайте этот фильтр в своем классе FilterSet и укажите все поля, которые должны быть включены для заказа.

...