Формат фильтра Django для даты - PullRequest
0 голосов
/ 30 мая 2009

year_id (2004 и т. Д.) - это раскрывающийся список в шаблоне. Пользователи выбирают год, и он отображается как year_id в представлении. Мне нужно выбрать публикации на основе года в поле, которое называется grantstartdt, в формате 2008-01-01. Ошибка:

Аргумент int () должен быть строкой или числом, а не «Годом»

year_id = request.GET['year_id']  
yr = get_object_or_404(Year, pk=year_id) 
projectyr=Researchproject.objects.exclude(activeyesno = 2).filter(grantstartdt__year=yr)  

Спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 30 мая 2009

Это потому, что вы ссылаетесь на объект года вместо фактического года. Предполагая, что ваша модель Года имеет целочисленное поле с именем xyz . Ваш код должен выглядеть как ..

year_id = request.GET['year_id']  
yr = get_object_or_404(Year, pk=year_id) 
projectyr=Researchproject.objects.exclude(activeyesno = 2).filter(grantstartdt__year=yr.xyz)
0 голосов
/ 30 мая 2009

Попробуйте передать year_id вместо yr в этом filter() вызове:

projectyr=Researchproject.objects.exclude(activeyesno = 2).filter(grantstartdt__year=year_id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...