2016-05-18 7 views
0

У меня есть просмотр этого календаря, который требует текущего года и месяца, и используется примерно на 1/4 сайта, поэтому я надеялся создать {% url %} для него, требуется обновление контекста повсюду.Вставка дат из шаблонов django в url-тег

I унаследовать шаблон со сценарием JS, содержащего следующее:

var url = "{% url 'companies:deliverers:deliverer-calendar-view' pk=company.pk slug=company.slugged_name year=now 'Y' month=now 'M' %}"

Я надеялся, что заткнуть year и monthkwargs с помощью стандартных тегов шаблонов, но это дает ошибка:

Don't mix *args and **kwargs in call to reverse()! 

Я также попытался сделать:

"{% url 'companies:deliverers:deliverer-calendar-view' pk=company.pk slug=company.slugged_name year=now'Y' month=now'M' %}" 

Но это дает мне:

Could not parse the remainder: ''Y'' from 'now'Y'' 

Кто-нибудь есть какие-либо предложения?

ответ

0

Я думаю, вам нужно импортировать datetime и делать datetime.now() ... Это можно передать в контекст.

1

Вам нужно как минимум переменную даты из контекста. Тогда вы можете уйти с:

{% with year=my_date|date:'Y' month=my_date|date:'M' %} 
    {% url 'companies:deliverers:deliverer-calendar-view' pk=company.pk slug=company.slugged_name year=year month=month %} 
{% endwith %} 
+0

Не знаю, почему я об этом не думал ... спасибо – thefoxrocks

0

Принимая @Lucas Moeskops логики во внимание, я был в состоянии развить лучшее решение:

{% now "Y" as YEAR %} 
{% now "m" as MONTH %} 
var url = "{% url 'companies:deliverers:deliverer-calendar-view' pk=company.pk slug=company.slugged_name year=YEAR month=MONTH %}" 

Используя этот метод, вы никогда не должны взломать context_data для куча взглядов ... довольно приятно :).

+1

А :-) Я пробовал это, но я думаю, что работает только с Django 1.9, я пробовал в 1.8. –