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)
感谢您的帮助!
答案 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)