我刚刚将应用程序部署到新服务器,虽然我正在使用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/)中,所以我宁愿不通过他们的代码重写所有模板标签。
开发服务器:
生产服务器:
有什么想法吗?
答案 0 :(得分:1)
仔细观察后,我意识到这不是违规行,即使它在追溯中突出显示:
{% url admin:password_change as password_change_url %}
该行实际上在我的views.py中,其中我使用了三元运算符("this" if condition else "that"
)。我不知道,这种语法只支持Python 2.5及更高版本。
问题解决了。