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
, например, содержит знак вопроса (?
), амперсанд (&
) и т.д., то они будут экранированы должным образом.