2010-06-14 4 views
1

Je viens de déployer une application sur un nouveau serveur, et même si j'utilise virtualenv, j'ai dû installer un nouvel environnement sur le serveur de production, qui a une architecture différente.Syntaxe de deux points Django dans les balises de gabarit: uniquement dans les versions plus récentes?

Quoi qu'il en soit, j'ai reçu aucun TemplateSytaxErrors dans le développement, mais sur le serveur de production, je reçois:

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

La ligne incriminée est:

{% url admin:password_change as password_change_url %} 

En enlevant cette ligne, le houblon TemplateSyntaxError à la ligne suivante qui a un deux-points dedans (et laisse d'autres étiquettes de modèle fonctionnent bien). Donc, ma question est la suivante: existe-t-il des différences dans les versions de Python/Django qui autoriseraient ou interdiraient la syntaxe du namespacing? Les tags de template sont dans django-grappelli (http://code.google.com/p/django-grappelli/), donc je préfère ne pas passer en revue leur code et réécrire toutes les balises de template.

serveur de développement:

  • 32-bit Debian
  • Python 2.5.5
  • Django 1.2.1

serveur de production:

  • 64 bits CentOS
  • Python 2.4.3
  • Django 1.2.1

Toutes les idées?

Répondre

2

regardant de plus près, je compris que ce n'était pas la ligne incriminée, même si il a été souligné dans le retraçage:

{% url admin:password_change as password_change_url %} 

La ligne était en fait dans mon views.py, où je l'opérateur ternaire ("this" if condition else "that"). Je ne le savais pas, cette syntaxe est uniquement supportée dans Python 2.5 et plus.

Problème résolu.

Questions connexes