2009-07-24 23 views
34

认为:如何在django模板中设置dateTime的格式?

{{ wpis.entry.lastChangeDate|date:"D d M Y" }} 

给我(为什么?):

2009-07-24 21:45:38.986156 

,我不知道如何跳过小数部分...

在我的模型,我有:

addedDate = models.DateTimeField(default=datetime.now) 
+0

当然有,这里是所有线路

  • {{wpis.entry.UserID.username}} @ {{wpis.entry.lastChangeDate |日期: “d d MY”}}]
  • IProblemFactory 2009-07-24 22:05:30

    +3

    奇怪的是,它适合我。你确定你的lastChangeDate是Django DateTime吗? – freiksenet 2009-07-24 22:12:25

    回答

    6

    您可以使用此:

    addedDate = datetime.now().replace(microsecond=0)

    3

    我怀疑wpis.entry.lastChangeDate已经以某种方式转换成视图中的字符串,be前来到模板。

    为了验证这个假设,你可以在视图中检查它是否有一些只有字符串的属性/方法 - 例如wpis.entry.lastChangeDate.upper,然后查看模板是否崩溃。

    您也可以创建自己的custom filter,并将其用于调试目的,让它检查对象并将检查结果写入页面或简单地在控制台上。它将能够检查该对象,并检查它是否确实是一个DateTimeField。

    在无关的通知上,为什么不使用models.DateTimeField(auto_now_add=True)来设置创建日期时间?

    94

    这正是你想要的。试试这个:

    {{ wpis.entry.lastChangeDate|date:'Y-m-d H:i' }}