我正在尝试根据 DateField 对查询集进行注释,如图所示。
我使用的是 Django 版本 1.8.12 和 MYSQL 版本 5.6.40。
尝试遵循如何用自创建以来的天数注释查询集,但这里它是一个 DateTimeField。下面的评论说“将其更改为 Value(now.date(), DateField()) - F('creation_date__date'),不起作用”
型号代码如下所示:
class Holding(models.Model):
trans_date = models.DateField(_("Trans. Date"), null=False)
...
Run Code Online (Sandbox Code Playgroud)
给出错误持续时间的注释查询如下所示:
today = timezone.now().date()
testqs = Holding.objects.filter(id=1)
myqs = testqs.annotate(duration = ExpressionWrapper( Value(today, DateField()) - F('trans_date'), output_field=DurationField()))
Run Code Online (Sandbox Code Playgroud)
当我尝试打印时,我得到的只是“无”。打印差异以供参考。
for i in myqs:
print i.duration, '-', today-i.trans_date
None - 1224 days, 0:00:00
None - 1206 days, 0:00:00
None - 1144 days, 0:00:00
None - 1051 days, 0:00:00
None - 1045 days, 0:00:00
Run Code Online (Sandbox Code Playgroud)
我希望持续时间是一个 …