【问题标题】:Formatting date in django template在 django 模板中格式化日期
【发布时间】:2016-03-23 18:36:50
【问题描述】:

我的模板以以下格式呈现标签{{ test.date}} -

2015-12-15T23:55:33.422679

当我尝试使用 django 的内置模板标签 date 对其进行格式化时,它不显示任何内容。

我尝试过的变体:

{{ test.date|date:"SHORT_DATE_FORMAT" }}

{{ test.date|date:"D d M Y" }}

models.py:

class Human(models.Model):
    name = models.CharField(max_length=50,default='',blank=False)


class Test(models.Model):
    human = models.ForeignKey(Human)
    date = models.DateTimeField(default=datetime.now)

views.py:

def list(request):
    h = Human.objects.all()
    s=[]
    for her in h: 
        t = h.test_set.all()
        s.extend(t)
    context = RequestContext(request, {'test_list': s,})
    return render_to_response('template.html', context)

然后我在这样的模板中使用它:

{% for test in test_list %}
     {{test.date}}
{% endfor %}

我错过了什么?

【问题讨论】:

  • 看起来不错,您在不使用 |date : 的情况下看到了什么?您可以添加有问题的视图
  • 你应该把你的代码放在有问题的地方
  • 这里的test.date 是什么?它是一个实际的日期时间对象,还是一个字符串时间戳?
  • @DanielRoseman 编辑了代码。请检查。
  • @Baterson 已编辑。请立即查看。

标签: django django-templates django-template-filters


【解决方案1】:

回答旧帖子...但是,答案似乎(对我来说)不是回答原始问题 - 这是为什么 Django 内联模板日期格式不起作用...

答案是(我相信)作者试图向他的页面输出如下内容:

"This is my date:{{test.date|date:"D d M Y"}}."

如果这确实是正在尝试的问题,那么问题是双引号在这种情况下不起作用。您需要执行以下操作:

"This is my date:{{test.date|date:'D d M Y'}}."

注意单引号...

【讨论】:

    【解决方案2】:

    我不确定你想从这个逻辑中得到什么,但我认为你可以使用这个:

    def list(request):
        test = Test.objects.all()
        return render(request, 'template.html', {'test':test})
    

    在模板中:

    {% for t in test %}
        {% t.date %}
    {% endfor %}
    

    如果你想显示人,只需添加循环{% t.human.name %}

    【讨论】:

    • 您的代码有何不同?我也在做同样的事情。以test_list 传递测试列表,然后使用test.date
    • @qwertp 如果您创建了Test 对象,它会更加清晰和简单,并且可以正常工作
    • 但这不是我的问题。我的问题是我无法使用date 模板标签格式化test.date。我想知道是否可以使用测试对象的查询集来获得解决方案
    • 您在test.date 中看到的内容,没有模板标签date|?。在像我现在这样的 django 1.8 中,这个模板标签可以工作。请尝试我的解决方案,在我的项目中它有效。这里有一些datetimedocs.djangoproject.com/en/dev/ref/templates/builtins/#date的标签
    猜你喜欢
    • 2014-10-11
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 2015-01-15
    • 2019-01-21
    • 2013-09-05
    • 1970-01-01
    • 2019-02-19
    相关资源
    最近更新 更多