首页 > 解决方案 > 如何使用许多对象更改日期时间字段?

问题描述

我想更改我的日期时间字段,但 current_user_moneybooks 有很多对象。

所以我想知道是否有任何方法可以更改日期时间字段的格式。

我试过链接

for current_user_moneybook in current_user_moneybooks
   def start_date(self):
        return self.start_date.strftime("%Y-%m-%d")
    def end_date(self):
        return self.end_date.strftime("%Y-%m-%d")

或者

def all_moneybooks(request):
    current_user = request.user

    if current_user.is_authenticated:
        current_user_moneybooks = current_user.owner.all

        start_date.strftime("%Y-%m-%d") for current_user_moneybook in current_user_moneybooks
        end_date.strftime("%Y-%m-%d") for current_user_moneybook in current_user_moneybooks

        return render(request, "home.html", context={"current_user": current_user, "all_moneybooks": all_moneybooks, "current_user_moneybooks": current_user_moneybooks})
    else:
        return render(request, "home.html", context={"current_user": current_user, "all_moneybooks": all_moneybooks})

结果:

current_user_moneybooks 中 current_user_moneybook 的 start_date.strftime("%Y-%m-%d") ^ SyntaxError: invalid syntax

标签: django

解决方案


首先,您得到的语法错误是由于列表理解的错误实现。

您的迭代器必须在列表中,并且您还需要使用迭代器来修改它的属性。

start_date.strftime("%Y-%m-%d") for current_user_moneybook in current_user_moneybooks

必须是这样的

modified_dates = [current_user_moneybook.start_date.strftime("%Y-%m-%d") for current_user_moneybook in current_user_moneybooks]

“all_moneybooks”是定义名称,我不确定为什么要将它发送到模板。

如果您只想更改模板中日期格式的表示,您可以使用 django 的内置模板过滤器来做到这一点,如下所示

{{ some_date|date:’D, d M, Y' }} -> Thu, 03 Dec, 2015

推荐阅读