Форум сайта python.su
Добрый день,
Изучаю Django - возникают вопросы)
Есть БД - скажем машины. Условный пример вот http://auto.ru/cars/chevrolet/aveo/used/
Делаю viewшки (проблем нет).
Но как выводить то что нужно пользователю (пользователь сам выбирает - скажем машины с 2001 по 2005 год, автомат, дизель).
Погуглил - примеров не нашел. В обучалках что смотрел-читал не видел такого.
Офлайн
http://auto.ru/cars/chevrolet/aveo/used/?search%5Bsection_id%5D=1&search%5Bmark%5D%5B0%5D=49&search%5Bmark-folder%5D%5B0%5D=49-4269&search%5Bprice%5D%5Bmin%5D=&search%5Bprice%5D%5Bmax%5D=&search%5Byear%5D%5Bmin%5D=2013&search%5Byear%5D%5Bmax%5D=2014&search%5Bseller%5D=0&search%5Bavailability%5D=&search%5Brun%5D%5Bmin%5D=&search%5Brun%5D%5Bmax%5D=&search%5Bstate%5D=1&search%5Bperiod%5D=0&search%5Bengine_volume%5D%5Bmin%5D=&search%5Bengine_volume%5D%5Bmax%5D=&search%5Bengine_power%5D%5Bmin%5D=&search%5Bengine_power%5D%5Bmax%5D=&search%5Bgeo_region%5D=&search%5Bgeo_city%5D=&search%5Bgeo_country%5D=&search%5Bgeo_similar_cities%5D=&search%5Bacceleration%5D%5Bmin%5D=&search%5Bacceleration%5D%5Bmax%5D=&search%5Bwheel%5D=&search%5Bowners_number%5D=&search%5Bcustom%5D=1&search%5Bexchange%5D=0&search%5Bsalon_id%5D=&search%5Bextras%5D%5B33%5D=&search%5Bextras%5D%5B23%5D=&search%5Bextras%5D%5B39%5D=&search%5Bextras%5D%5B43%5D=&search%5Bextras%5D%5B46%5D=&search%5Bextras%5D%5B300%5D=&search%5Bextras%5D%5B49%5D=&search%5Bseats%5D=&show_sales=1#sales-list
Офлайн
ajib6eptДа интересует именно GET - что бы можно было прямую ссылку давать - вот авто с 2008 года
попробывал зафильтровать по дате. На сайте происходит фильтрация по get-Запросу
ajib6eptПолучаем список переменных из GET
Т.е. надо получить содержимое get-запроса в соответствии с этим отфильтровать модель.
Офлайн
Тогда давайте спрошу более понятный вопрос
Три параметра скажем
year_before - год с какого ищем
year_last год до которого ищем
Все включительно
и automat - True or False
Передаем не все 3 всегда а выборочно. 1 параметр любой. 0 параметров. Все три.
Как составить QuerySet ? Ну кроме дикого if
Офлайн
Можно как-то так:
class SearchForm(forms.Form): formfield_to_dbfield = { 'year_from': 'year__lte', 'year_to': 'year__gte', } year_from = forms.DateField(required=False) year_to = forms.DateField(required=False) automat = forms.BooleanField(required=False) def get_dbfield(self, formfield): return self.formfield_to_dbfield.get(formfield, formfield) def search(self): search_dict = dict( (self.get_dbfield(formfield), value) for formfield, value in self.clean().iteritems() if value is not None ) return MyModel.objects.filter(**search_dict)
Офлайн
GreyZmeem
Надо переспать с этим решением)
Спасибо!
Я наверное в самом начале.. пути)
Офлайн