@Suinny

Как сделать фильтр поля модели по choices?

Делаю фильтр модели, По обычному полю модели фильтрация работает отлично. Но в поле с зараннее вбитым списком choices не работает. Как это можно реализовать стандартными средствами джанго или сторонними инструментами, если таковы имеются?

models.py
CATEGORIES = [
        ('Центральный', 'Центральный'),
        ('Хостинский', 'Хостинский'),
        ('Адлерский', 'Адлерский'),
        ('Красная поляна', 'Красная поляна'),
    ]
    rayon = models.CharField(verbose_name='Район', choices=CATEGORIES, null=True, max_length=250)


forms.py
from django import forms

class Price(forms.Form):
    min_price = forms.IntegerField(label="от", required=False)
    max_price = forms.IntegerField(label="до", required=False)
    ordering = forms.ChoiceField(label="Сортировка", required=False, choices=[
        ['-timeStamp', 'по дате'],
        ['min_price_za_metr', 'дешевые сверху'],
        ['-min_price_za_metr', 'дорогие сверху'],
    ])


views.py
def blog_view(request):
    news = Post.objects.all()
    form = Price(request.GET)

    if form.is_valid():
        if form.cleaned_data["min_price"]:
            news = news.filter(min_price__gte=form.cleaned_data["min_price"])
        if form.cleaned_data["max_price"]:
            news = news.filter(min_price__lte=form.cleaned_data["max_price"])
        if form.cleaned_data["ordering"]:
            news = news.order_by(form.cleaned_data["ordering"])



    return render(request, 'novostroyki/blog.html', {'news':news, 'form':form})
  • Вопрос задан
  • 439 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы