2010-11-13 43 views
0

Je tente de créer une URL basée sur la date avec la balise de modèle d'URL de Django. J'ai un objet datetime que je peux afficher comme ceci:Utilisation de la date dans le Django url templatetag

{{block|date:"F j Y"}} 

Cependant, quand je l'utilise presque la même syntaxe avec la templatetag URL, comme ceci:

{% url meeting block|date:"Y" %} 

je reçois une erreur - il semble que la seule chose transmise à url est une chaîne vide:

... Reverse for 'meeting' with arguments '(u'',)' and arguments ... 

Qu'est-ce que je pourrais faire mal?

+0

Est-ce que mettre {{block | Date: "Y"}} avant votre appel balise URL produire la valeur attendue? Aussi ... si block est un objet datetime, ne peux-tu pas utiliser block.year? – eternicode

+0

Bizarrement, block.year etc ne semble pas fonctionner - je reçois toujours une chaîne vide (non-unicode cette fois, hrm). Mais merci pour la suggestion. –

+0

Autrement dit, cela fonctionne en dehors de la balise {% url%} mais pas à l'intérieur. –

Répondre

2

La balise url est un peu étrange, et est très pointilleux sur ses arguments. En particulier, je ne pense pas qu'il évalue les filtres dans ses arguments.

Vous pouvez essayer ceci:

{% with block|date:"Y" as blockyear %}{% url meeting blockyear %}{% endwith %}