模板标签中的Django冒号语法:仅在较新版本中?

时间:2010-06-14 19:42:45

标签: python django

我刚刚将应用程序部署到新服务器,虽然我正在使用virtualenv,但我必须在生产服务器上安装新环境,该服务器具有不同的体系结构。

无论如何,我在开发过程中没有收到TemplateSytaxErrors,但是在生产服务器上,我得到了:

Exception Type:     TemplateSyntaxError
Exception Value:    Caught SyntaxError while rendering: invalid syntax (views.py, line 25)

违规行是:

{% url admin:password_change as password_change_url %}

删除该行后,TemplateSyntaxError会跳转到其中包含冒号的下一行(并允许其他模板标记正常工作)。

所以我的问题是:在允许或禁止命名空间语法的Python / Django版本中是否存在一些差异?

模板标签位于django-grappelli(http://code.google.com/p/django-grappelli/)中,所以我宁愿不通过他们的代码重写所有模板标签。

开发服务器:

  • 32位Debian
  • Python 2.5.5
  • Django 1.2.1

生产服务器:

  • 64位CentOS
  • Python 2.4.3
  • Django 1.2.1

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

仔细观察后,我意识到这不是违规行,即使它在追溯中突出显示:

{% url admin:password_change as password_change_url %}

该行实际上在我的views.py中,其中我使用了三元运算符("this" if condition else "that")。我不知道,这种语法只支持Python 2.5及更高版本。

问题解决了。