[django] Django의 {% url %} 템플릿 태그를 통해 쿼리 매개 변수를 전달할 수 있습니까?

같은 {% url %}태그에 요청 매개 변수를 추가 하고 싶습니다 ?office=foobar.

이게 가능해? 아무것도 찾을 수 없습니다.



답변

아니요, GET 매개 변수는 URL의 일부가 아니기 때문입니다.

끝에 추가하기 만하면됩니다.

<a href="{% url myview %}?office=foobar">

Django 1.5+ 용

<a href="{% url 'myview' %}?office=foobar">


답변

현재 매개 변수를 새 매개 변수와 혼합하는 방법 :

{% url 'order_list' %}?office=foobar&{{ request.GET.urlencode }}

요청 변수를 갖도록 설정을 수정하십시오.

from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP

TEMPLATE_CONTEXT_PROCESSORS = TCP + (
    'django.core.context_processors.request',
)


답변

urlencode인수가 변수 인 경우 사용

<a href="{% url 'myview' %}?office={{ some_var | urlencode }}">

또는 공백과 같은 특수 문자로 인해 URL이 깨질 수 있습니다.

문서 : https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#urlencode


답변

첫째, 어리석은 대답 :

{% url my-view-name %}?office=foobar

심각한 답변 : 아니요, 할 수 없습니다. Django의 URL 리졸버는 URL의 경로 부분 만 일치 하므로 {% url %}태그는 URL의 해당 부분 만 반전 할 수 있습니다.


답변

이 시도:

{% url 'myview' office=foobar %}

그것은 나를 위해 일했습니다. 기본적으로 해당 링크를 반대로 수행하고 주어진 인수를 적용합니다.


답변