1
activitylist = sr.activity_set.all()
cell.paragraphs[0].text = activitylist.values_list('activityPlannedStartDate', flat = True)

我收到一个错误:'in' 需要字符串作为左操作数,而不是 datetime.date

cell.paragraphs[0].text是我在 Word 中构建的 docx 中预定义表格中的一个单元格。

请帮助解决这个问题TypeError

先感谢您!

4

2 回答 2

1

您应该使用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)
于 2015-01-21T19:32:01.270 回答
0
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 日期类型格式化功能的数据库。Postgres默认提供此功能。如果您使用MSSQL后端,则可以to_char使用FORMAT. Oracle查阅他们的文档等。

在查询集被评估之后,这会将注释添加formatted_date到返回的查询集中的每个对象。

[obj.formatted_date for obj in qs]
于 2020-03-30T05:58:16.440 回答