我已经在这个问题上阅读了大量类似的Stackoverflow,但我的问题似乎更具体。无论如何我都无法显示日期,但默认情况下。
以下是有问题的模型:
class Blog (models.Model):
...
posted = models.DateField(db_index=True)
然后将其传递给模板,作为Blog.objects.all()中包含的对象的一部分:
def index(request):
return render_to_response('index.html', {
'categories': Category.objects.all(),
'posts': Blog.objects.all()[:10:-1],
})
所以目前在我的模板中,我可以通过在模板中编写以下内容来显示DateField信息,因为posted是对象的属性:
{% for post in posts %}
{{ post.posted }}
{% endfor %}
如果我这样做,它会显示相当丑陋的日期:2014-02-24
如何更改此显示?
我已经尝试过的事情:
{{ post.posted|date:"D M j Y" }}
显示为空{{post.posted|date }}
包含DATE_FORMAT =
'D M j Y'
的settings.py也只显示为空USEL10N = False USEL10N = True
的各种组合......仍然只显示空白1.6的文档使用“| date”过滤器听起来非常简单,但它只是在我的结尾。有什么想法吗?
谢谢。
答案 0 :(得分:3)
我现在无法对此进行测试,但文档中的内容引起了我的注意。
documentation for the date template filter说
如果value是日期时间对象(例如,datetime.datetime.now()的结果),则输出将是字符串'Wed 09 Jan 2008'。
documentation for the DateField
model field表示该字段包含
日期,由datetime.date实例以Python表示。
可能是date
模板过滤器没有将datetime.date
实例作为其参数吗?尝试将博客模型的发布字段更改为DateTimeField
,看看会发生什么。