Делаю фильтр модели, По обычному полю модели фильтрация работает отлично. Но в поле с зараннее вбитым списком 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})