django过滤日期格式

时间:2009-05-29 20:34:03

标签: django date format

year_id(2004 etc)是模板上的下拉框。用户选择一年,并在视图中将其作为year_id检索。我需要从名为grantstartdt的字段中选择基于年份的出版物,格式为2008-01-01。错误是:

int()参数必须是字符串或数字,而不是'Year'

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 :(得分:0)

尝试在year_id来电中传递yr代替filter()

projectyr=Researchproject.objects.exclude(activeyesno = 2).filter(grantstartdt__year=year_id)

答案 1 :(得分: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)