【问题标题】:Convert datetime format within ListView在 ListView 中转换日期时间格式
【发布时间】:2017-11-07 09:47:37
【问题描述】:

我尝试更改模板中日期时间的显示格式,

这是我在views.py 中的代码:

class RestaurantListView(LoginRequiredMixin, ListView):
    def get_queryset(self):
        return  RestaurantLocation.objects.filter(owner=self.request.user)

模板中的代码:

<ul> {% for obj in object_list  %}
    <li>{{ obj.city }},{{ obj.location }} {{ obj.category }}</li>
    <li>FirstVisit: {{ obj.visited }}</li>
        <br>
</ul>

浏览器显示日期时间:

首次访问:2015 年 9 月 9 日下午 3:08

我打算转换为:

首次访问:2015-09-09 3:08 p.m.

所以我在views.py 中导入日期时间并在模板中格式化日期时间对象,

<li>FirstVisit: {{ obj.visited.strftime('%Y-%m-%d %I:%M %p') }}</li>

报错:

django.template.exceptions.TemplateSyntaxError:
Could not parse the remainder: '('%Y-%m-%d %I:%M %p')' 
from 'obj.visited.strftime('%Y-%m-%d %I:%M %p')'

如何更改模板中日期时间的格式?

【问题讨论】:

  • 有据可查,Django 模板不允许您使用参数调用方法。
  • 调用此类方法可以在views文件中完成,而不是在模板文件中。\

标签: django


【解决方案1】:

在你的模板中使用这个

<li>FirstVisit: {{ obj.visited|date:'Y-m-d H:i'  }}</li>

只需在格式部分给出您需要的格式

【讨论】:

  • “下午”结束时需要a
猜你喜欢
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多