比较日期和月份的日期字段大于

时间:2012-02-13 16:27:20

标签: python django

我要进行此查询:

today = datetime.date.today()
year=today.year
month=today.month
news=News.objects.filter(date__year__lt = year,date__month__lt=month)

注意:新闻对象有一个名为date的字段 但是我得到了这个错误:

Join on field 'date' not permitted. Did you misspell 'year' for the lookup type?

你的想法是什么?

提前致谢

2 个答案:

答案 0 :(得分:10)

您无法将__lt附加到__year__month。只有最后一个双下划线位考虑限定符,它之前的所有内容都被视为遍历,即Django将尝试在名为year的连接表上查找名为date的字段,这显然不是正确的。

对于这样的事情,您需要直接比较日期:

date = datetime.date(year, month, 1)
news = News.objects.filter(date__lt=date)

答案 1 :(得分:2)

Django在处理关系时遇到某些查找问题(例如date__year__*)。我认为这是他们为未来版本所做的工作。

这是否会产生可接受的结果?

news = News.objects.filter(date__lt = datetime.date(year, month, 1))