我觉得这与我之前提出的问题有关,但这里是:
我正在使用 Django 的查询集,并且有一些我正在处理的日期。现在在我的代码中,我正在使用extra
调用来尝试从日期中提取年份和月份:
sum_qs = sum_qs.extra(select={'year': 'EXTRACT(year FROM date)', 'month': 'EXTRACT(month FROM date)','is_paid':'date_paid IS NOT NULL'})
sum_qs = sum_qs.values('client__name', 'subtotal_currency', 'is_paid','year', 'month')
但是,我正在尝试摆脱对 的调用extra
,因为考虑到 django 对日期进行了多年和数月的字段查找,这似乎有点无用。
因此,我尝试执行以下操作:
sum_qs = sum_qs.values('client__name', 'subtotal_currency', 'is_paid','date__year', 'date__month')
但是在这里我遇到了一个奇怪的错误:
Join on field 'date' not permitted. Did you misspell 'year' for the lookup type?
首先,我无法真正理解这个错误的含义。而且,我真的不可能以这种方式度过这一年吗?我主要想这样做,因为稍后annotate
我的查询使用了一个总和,该总和基于年份和月份。