Google App Engine 中的 Django 自定义模板标签
Posted
技术标签:
【中文标题】Google App Engine 中的 Django 自定义模板标签【英文标题】:Django Custom Template Tags In Google App Engine 【发布时间】:2010-10-20 17:29:23 【问题描述】:我正在尝试在 Google App Engine Web 应用程序中包含以下标记:
http://www.djangosnippets.org/snippets/1357/
此文件是否有任何配置可以使其与 Google App Engine 一起使用?
因为我遵循了 Django 模板教程:http://docs.djangoproject.com/en/dev/howto/custom-template-tags/
并具有这样的结构:
templatetags/
__init__.py
range_template.py
在模板文件中,我有 %load range_template%
但我得到了错误:
TemplateSyntaxError: 'range_template' 不是有效的标签库:无法从 django.templatetags.range_template 加载模板库,没有名为 range_template 的模块
这不起作用的另一件事可能是 INSTALL_APPS settings.py 文件。不知道怎么配置。
我的应用程序根目录中有一个 settings.py 文件,其中包括:
INSTALLED_APPS = ('templatetags')
任何建议将不胜感激。
【问题讨论】:
【参考方案1】:尝试执行以下操作:
$ python ./manage.py startapp foo
将 foo 添加到已安装的应用中:
INSTALLED_APPS += ('foo',)
并将您的 templatetags 目录移动到您的 foo 应用程序中。比如:
./djangoproject
__init__.py
settings.py
urls.py
etc..
foo/
__init__.py
templatetags/
__init__.py
range_template.py
Django 约定是模板标签代码驻留在应用程序中,在名为 templatetags (see docs) 的目录中。我认为 GAE 也是如此。
【讨论】:
如果我这样做,我是否需要在谷歌应用引擎生产服务器上也配置它? 我不确定你的意思。我想,您想要影响生产服务器的任何更改都必须对您的生产服务器进行。我对django很熟悉,但对谷歌的服务环境不太熟悉。 当您执行 appcfg.py 更新时,会将您的本地文件上传到 AppEngine 服务器。所以你需要做的所有配置都在你的开发环境中,通过appcfg.py update命令镜像到服务器上。 Per Siva 的回答如下 - 不要忘记重新启动开发服务器。这是很少会自动获取更改的情况之一。【参考方案2】:如果有人搜索这个,我在 2008 年写了一篇关于这个的小文章:http://daily.profeth.de/2008/04/using-custom-django-template-helpers.html
【讨论】:
链接当前已损坏【参考方案3】:请务必在完成上述步骤后重启开发服务器
【讨论】:
在为 GAE 配置 smart_if 时,这让我大吃一惊。 +1以上是关于Google App Engine 中的 Django 自定义模板标签的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS 中的 Google App Engine 日志记录
Google App Engine 中的 Django 模板语法错误
数据存储区中的 Google App Engine 版本控制