Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » фильтрация с помощью функций-обработчиков [RSS Feed]

#1 Фев. 5, 2011 15:27:10

I159
От:
Зарегистрирован: 2010-12-09
Сообщения: 85
Репутация: +  0  -
Профиль   Отправить e-mail  

фильтрация с помощью функций-обработчиков

делаю выборку с помощью функции обработчика (упражнение).
urls.py:

brands_info = {'queryset' : Brands.objects.all(), 'template_name': 'cars_select.html', 'extra_context': {'brands': Brands.objects.all}}

urlpatterns = patterns('',
(r'^select/(\w+)/$', views.brand_by_country),
views.py:
def brand_by_country(request, country):
try:
location = Brands.objects.get(country = country)
except Brands.DoesNotExist:
raise Http404

return list_detail.object_list(
request,
queryset = Brands.objects.filter(country = location),
template_name = 'cars_select.html',
template_object_name = 'brands',
extra_context = {'location': location}
)
В при данном запросе выводится ошибка:
get() returned more than one Brands – it returned 2! Lookup parameters were {'country': u'Germany'}
Почему вывод более 1 элемента вызывает ошибку?



Отредактировано (Фев. 5, 2011 15:28:19)

Офлайн

#2 Фев. 5, 2011 18:04:12

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

фильтрация с помощью функций-обработчиков

I159
Почему вывод более 1 элемента вызывает ошибку?
Потому что так сделали. Если есть возможность того, что фильтрация возвращает больше одного элемента, испльзуйте не get, а filter.



Офлайн

  • Начало
  • » Django
  • » фильтрация с помощью функций-обработчиков[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version