Допустим, у меня есть такая модель:
class Car(models.Model):
BRANDS = (
('FRD', 'Ford'),
('MCD', 'Mercedes'),
...
)
brand = models.CharField(max_length=3, choices=BRANDS)
color = models.CharField(max_length=24)
url = models.URLField()
new = models.BooleanField(default=False)
И хотел бы создать представление списка, используя общие представления на основе классов :
. В urls.py
url(r'^car/list/$', CarList.as_view(), name='car_list'),
В views.py
class CarList(ListView):
model = Car
template_name = "list.html"
def get_queryset(self):
return Car.objects.all()
В list.html
{% for car in cars %}
<tr>
<td>{{ car.brand }}</td>
<td>{{ car.color }}</td>
<td>{{ car.url }}</td>
<td>{{ car.new }}</td>
</tr>
Теперь я хотел бы предложить несколько вариантов добавления фильтров по набору запросов (и вариантов сортировки по столбцам ). Например, обычное окно поиска, которое делает %LIKE% для любого столбца, или выбор из выбора бренда -, или простое возрастание/убыль для каждого столбца.
Я знаю, что фильтры и сортировка окажутся в наборе запросов (get_queryset
). но это требует много конкретной работы в шаблоне и коде просмотра, хотя я чувствую, что должны быть какие-то пакеты, которые помогают в этом?
У кого-нибудь есть указания для меня?