2011-11-01 73 views
2

我來自Rails編程經驗。Python - Google App Engine - Django模板中的方法

我使用Django模板在Google App Engine上編寫了一個應用程序。

我無法在日期時間調用strftime(「%I:%M%p」)。

在我的main.py文件我有:

import datetime 
.... 
class Report(db.Model): 
    date = db.DateTimeProperty(auto_now_add = True) 

我通過所有的模板,在模板上的報告我有:

{% for report in reports %} 
<tr> 
    <td>{{ report.date.strftime("%I:%M %p") }}</td> 
</tr> 
{% endfor %} 

我知道我有一個DateTime對象,因爲我可以這樣做:

{{ report.date.day }} 

或:

{{ report.date.minute }} 

就好,他們返回他們應該返回的東西。

當我有:

{{ report.date.strftime("%I:%M %p") }} 

我得到的錯誤:

raise TemplateSyntaxError, "Could not parse the remainder: %s" % token[upto:] TemplateSyntaxError: Could not parse the remainder: ("%I:%M %p")

我怎麼strftime的工作?

回答

5

Django模板引擎不支持將參數傳遞給類似的方法。爲了實現同樣的事情,請嘗試使用the date filter

{{ report.date|date:"f A" }} 

(編輯:固定的日期字符串的語法,因爲我傻)

+0

謝謝! 我做了'{{report.date | date:「f A」}}'' – Chris

1

Django的模板系統是「meant to express presentation, not program logic」這就是爲什麼它「不僅僅是嵌入到HTML中的Python」。

默認情況下只支持標籤和過濾器。這就是爲什麼你需要找到一個類似於你指出的功能的過濾器,就像@Dougal所做的那樣。 另一種選擇是製作一個custom template tag or filters,但在這種情況下會是一種矯枉過正。

相關問題