Django : значение {% url 'zzz' %}?{{ yyy }}?

Я наткнулся на код в HTML файле и не понял, как он работает.

{% url 'calendar' %}?{{ prev_month }}

Особенно, что означает символ "?"? И как интерпретируется код?

Используется в кнопке для переключения между месяцами, но я не могу понять, как это работает.

Я пытался вывести разные места в коде, чтобы посмотреть, что с чем выполняется, но не нашел ничего интересного.

Спасибо

Особенно, что означает "?"?

Это для строки запроса [wiki]. Действительно, если, например, prev_month содержит foo, то запрос будет выглядеть следующим образом:

/some/path?foo

The querystring is a key-value dictionary where the same key can map to multiple values. You can access this with request.GET [django-doc]. Usually it is thus provided, for example as:

/some/path?foo=bar

Если вы используете элемент в качестве значения, вы должны работать с |urlencode фильтром шаблона [django-doc]:

{% url 'calendar' %}?month={{ prev_month|urlencode }}

Если prev_month, например, содержит знак вопроса (?), амперсанд (&) и т.д., то они будут экранированы должным образом.

Вернуться на верх