django - 如何使用许多对象更改日期时间字段?
问题描述
我想更改我的日期时间字段,但 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
解决方案
首先,您得到的语法错误是由于列表理解的错误实现。
您的迭代器必须在列表中,并且您还需要使用迭代器来修改它的属性。
这
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
推荐阅读
- xpath - 父标签的xpath
- c# - Scheduler Quartz 的依赖注入现在可以正常工作
- python - python的异步C++库
- r - R闪亮:模态对话中的Timevis输出
- javascript - JQUERY 旋钮值
- php - BindParam 不返回任何值 - PHP PDO
- excel - VBA:提取雅虎财经财务报表的每一行
- github-actions - 我们可以将 workflow_dispatch 触发器的输入限制为特定的集合吗?
- webpack - 编辑联合模块时由 Webpack-Dev-Server 实时重新加载
- java - 有没有办法在 talend 中找到过去 24 小时或 1 天内的文件,而无需从 ftp 读取整个文件列表