Django新手,在此先感谢您的帮助。
我想添加一个包含分组日期范围的字段。日期范围类似于“ 1/1/2018到1/2/2018”,其中第一个日期是特定名称集中的最小日期,第二个是最大日期。
qs = Qs.objects.filter(**filter_kwargs) \
.values('name')
.annotate(v1 = Sum('something')
, DATE_RANGE = Min('date') + ' - ' + Max('date'))
.order_by()
最终目标是能够在模板中显示此内容。
答案 0 :(得分:0)
使用:
Example.objects.filter(date__range=["2018-01-01", "2011-02-01"])
答案 1 :(得分:0)
SQL等价查询:
Select date,... from samplemodel where date range("2018-01-01", "2011-02-01") group by date
Django ORM查询:
SampleModel.objects.filter(date__range=["2018-01-01", "2011-02-01"]).values('date').annotate(.....)
答案 2 :(得分:0)
我一定不清楚我的问题,很抱歉。这就是我最后要去的事情。同样,目标是在查询集中添加一列,该列是最小日期和最大日期的串联。
Name | Min Date | Max Date | NEW COLUMN
Dan | 1-1-2011 | 2-2-2022 | 1-1-2011 to 2-2-2022
Sam | 1-2-2011 | 3-12-2022 | 1-2-2011 to 3-12-2022
def someview(request):
qs = Qs.objects.filter(**filter_kwargs) \
.values('Name') \
.annotate(temp_min_date = Min(date)
,temp_max_date = Max(date)) \
.order_by()
for o in qs:
o['date_range'] = "{0} to {1}".format(o['temp_min_date'], o['temp_max_date'])