python - Django queryset 到一个字符串

标签 python django

我有一个查询集:

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/

相关文章:

django - 如何在 nginx + django + kubernetes 中提供静态内容?

django - 与主管一起启动无花果流程

python - 使用 APIRequestFactory 对 Django 的 rest api 进行单元测试时无法获取 url 参数

Python boto3 : receive versionId after uploading a file to S3

python - 配置 Flask 正确加载 Bootstrap js 和 css 文件

python - 请求中的数据和参数有什么区别?

python - 使用 Db 数据填充 Django 表单字段数据

Django:按位置排序忽略 NULL

python - 在 Python 中保留除一列之外的重复行

python中点线裁剪算法