0

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)  

感谢您的任何帮助!

4

2 回答 2

0

尝试通过year_id而不是yr在该filter()调用中传递:

projectyr=Researchproject.objects.exclude(activeyesno = 2).filter(grantstartdt__year=year_id)
于 2009-05-29T20:51:17.063 回答
0

那是因为您指的是年份对象而不是实际年份。假设您的 Year 模型有一个名为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)
于 2009-05-30T05:09:24.663 回答