【问题标题】:Django template context not working with date template tagDjango模板上下文不适用于日期模板标签
【发布时间】:2021-07-26 05:12:12
【问题描述】:

我将日期作为一个完整的字符串传递如下:

def template_test(request):

    context = {
        'day': '2021-04-19T03:00:00Z',
    }

    return render(request, 'date_test.html', context=context)

date_test.html

{% extends 'base.html' %}
{% block content %}

<p>Here is the day {{ day|date:"l, j M y" }}</p>

{% endblock %}

有谁知道为什么当我在我的 day 变量上添加一个日期模板标签时它不起作用?如果我删除它,day 变量会正常显示,但过滤器不会。

【问题讨论】:

    标签: python python-3.x django django-templates


    【解决方案1】:

    你能试试这个吗? 返回渲染(请求,'date_test.html',上下文)

    【讨论】:

      【解决方案2】:

      您提供的字符串与 Django 的 date 过滤器要求不匹配。根据其documentation

      传递的格式可以是预定义的DATE_FORMAT之一, DATETIME_FORMATSHORT_DATE_FORMATSHORT_DATETIME_FORMAT,或使用上表中显示的格式说明符的自定义格式。请注意,预定义的格式可能会因当前语言环境而异。


      要解决此问题,您可以使用django.utils.dateparse 中的parse_datetime,如下所示:

      from django.utils.dateparse import parse_datetime
      
      def template_test(request):
          context = {
              'day': parse_datetime('2021-04-19T03:00:00Z')
          }
      
          return render(request, 'date_test.html', context=context)
      

      【讨论】:

        猜你喜欢
        • 2016-05-26
        • 2017-11-07
        • 2012-04-08
        • 1970-01-01
        • 2019-01-19
        • 2011-05-09
        • 2012-12-09
        • 2020-04-12
        • 2014-03-20
        相关资源
        最近更新 更多