DateField 到 QuerySEt 中的字符串格式
DateField to String formatting in QuerySEt
activitylist = sr.activity_set.all()
cell.paragraphs[0].text = activitylist.values_list('activityPlannedStartDate', flat = True)
我收到以下错误:'in ' 需要字符串作为左操作数,而不是 datetime.date
cell.paragraphs[0].text
是我在 Word 中构建的 docx 中预定义 table 中的一个单元格。
请帮忙解决这个问题TypeError
。
提前致谢!
您应该使用 strftime 方法将日期格式化为字符串。并使用 string.join
将值列表表示为逗号分隔的字符串:
formatted_dates = [date.strftime("%Y-%m-%d") for date in
activitylist.values_list('activityPlannedStartDate',
flat=True)]
cell.paragraphs[0].text = ', '.join(formatted_dates)
from django.db.models import F, Func, Value, CharField
qs.annotate(
formatted_date=Func(
F('date'),
Value('dd.MM.yyyy hh:mm'),
function='to_char',
output_field=CharField()
)
)
这仅适用于支持 to_char
date type formatting function 的数据库。 Postgres
默认提供此功能。如果您使用 MSSQL
后端,您可以将 to_char
替换为 FORMAT
。对于 Oracle
请参阅他们的文档等
查询集被评估后,这会将注释 formatted_date
添加到返回的查询集中的每个对象。
[obj.formatted_date for obj in qs]
activitylist = sr.activity_set.all()
cell.paragraphs[0].text = activitylist.values_list('activityPlannedStartDate', flat = True)
我收到以下错误:'in ' 需要字符串作为左操作数,而不是 datetime.date
cell.paragraphs[0].text
是我在 Word 中构建的 docx 中预定义 table 中的一个单元格。
请帮忙解决这个问题TypeError
。
提前致谢!
您应该使用 strftime 方法将日期格式化为字符串。并使用 string.join
将值列表表示为逗号分隔的字符串:
formatted_dates = [date.strftime("%Y-%m-%d") for date in
activitylist.values_list('activityPlannedStartDate',
flat=True)]
cell.paragraphs[0].text = ', '.join(formatted_dates)
from django.db.models import F, Func, Value, CharField
qs.annotate(
formatted_date=Func(
F('date'),
Value('dd.MM.yyyy hh:mm'),
function='to_char',
output_field=CharField()
)
)
这仅适用于支持 to_char
date type formatting function 的数据库。 Postgres
默认提供此功能。如果您使用 MSSQL
后端,您可以将 to_char
替换为 FORMAT
。对于 Oracle
请参阅他们的文档等
查询集被评估后,这会将注释 formatted_date
添加到返回的查询集中的每个对象。
[obj.formatted_date for obj in qs]