我有一个包含列数据时间的购买表。我想选择我今年所做的所有购买。贝娄是我的代码,但没有用!
import datetime
today = datetime.date.today()
year = Purchases.objects.filter(date__year = today.year)
我预计年份应该是2018年至201年的2018年提取的
答案 0 :(得分:2)
您可以使用ExtractYear
功能,例如:
from django.db.models.functions import ExtractYear
qs = Purchases.objects.annotate(year=ExtractYear('date')).filter(year = today.year)
答案 1 :(得分:1)
在查询时,我们可以从DateField
类型的模型字段获得fieldname__year
年份(用于比较)。如果我们有一个名为' purchase_date'在我们的模型中,我们可以过滤特定年份的数据:
MyModel.objects.filter(purchase_date__year=targetyear)
在您的情况下,如果列名是datatime。您可以在当年完成购买:
import datetime
today = datetime.date.today()
purchases = Purchases.objects.filter(datatime__year=today.year)