我有一个查询集:
chart_data = DetailChange.objects.extra(select={'day': 'date(captured_date)'})\
.values('item_id__store_id__store_name', 'day')\
.annotate(total_sale=Sum('amount_sold'))
然后我有一个这样的查询集:
{'day': datetime.date(2019, 6, 24), 'item_id__store_id__store_name': 'Keyboard Pro', 'total_sale': 706.0}
{'day': datetime.date(2019, 6, 25), 'item_id__store_id__store_name': 'Keyboard Pro', 'total_sale': 18.0}
...
现在我想要做的是获得一个字符串,其中包含所有日期,以“,”分隔。喜欢:
"2019-6-24, 2019-6-25, 2019-6-26, ..."
有没有简单的方法来完成它?
最佳答案
您可以使用 genexp 和 str.join
以 ,
作为分隔符:
', '.join(str(item['day']) for item in chart_data)
str(datetime.date)
即 datetime.date.__str__
已经以 %Y-%m-%d
格式返回日期所以你不需要做任何额外的 strftime
工作。
OTOH,如果您只需要 day
字段,则不应在 values
中包含 item_id__store_id__store_name
。
关于python - Django queryset 到一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56780425/