2010-11-13 1 views
0

Я пытаюсь создать URL-адрес, основанный на дате, с тегом шаблона URL-адреса Django. У меня есть объект типа DateTime, что я могу отобразить следующим образом:Использование даты в Django url templatetag

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

Однако, когда я использую почти тот же синтаксис с адресом templatetag, например, так:

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

Я получаю сообщение об ошибке - это что единственное, что передается в URL-адрес, это пустая строка:

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

Что я могу делать неправильно?

+0

ли положить {{блок | дата: "Y"}} перед тем тегом Вашего URL вызова производит ожидаемое значение? Также ... если блок является объектом datetime, возможно, вы просто используете block.year? – eternicode

+0

Странно, block.year и т. Д., Похоже, не работает. Я все еще получаю пустую строку (не-unicode на этот раз, hrm). Но спасибо за предложение. –

+0

То есть, он работает вне тега {% url%}, но не внутри. –

ответ

2

Тег url немного странный, и он очень разборчив в своих аргументах. В частности, я не думаю, что он оценивает любые фильтры в своих аргументах.

Вы можете попробовать это:

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