Python - Google App Engine - Django 模板中的方法
Posted
技术标签:
【中文标题】Python - Google App Engine - Django 模板中的方法【英文标题】:Python - Google App Engine - Methods in Django template 【发布时间】:2011-12-19 04:15:50 【问题描述】:我来自 Rails 编程经验。
我正在使用 Django 模板在 Google App Engine 上使用 Python 编写应用程序。
我不能在日期时间调用 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 %
我知道我有一个日期时间对象,因为我可以做到:
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 工作?
【问题讨论】:
【参考方案1】:Django 模板引擎不支持将参数传递给这样的方法。要完成同样的事情,请尝试使用the date
filter:
report.date|date:"f A"
(已编辑:修复了日期字符串的语法,因为我很愚蠢。)
【讨论】:
谢谢!我做了 report.date|date:"f A"
【参考方案2】:
Django 模板系统是“meant to express presentation, not program logic”,这就是为什么它“不是简单地将 Python 嵌入 html”。
默认情况下仅支持标签和过滤器。这就是为什么您需要像@Dougal 那样找到与您指出的功能类似的过滤器。 另一种选择是创建一个custom template tag or filters,但在这种情况下会有点矫枉过正。
【讨论】:
以上是关于Python - Google App Engine - Django 模板中的方法的主要内容,如果未能解决你的问题,请参考以下文章
python Google App Engine交互式python shell
python Google App Engine交互式python shell
Google App Engine - 大查询 - Python 找不到库 google.cloud
python 将Google App Engine SDK添加到Python virtualenv
google-app-engine:google api python客户端hello world中的ImportError httplib2