2011-01-04 14 views

उत्तर

125

नहीं, क्योंकि जीईटी पैरामीटर यूआरएल का हिस्सा नहीं हैं।

आप समाप्त करने के लिए उन्हें जोड़ने:

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

Django के लिए 1.5+

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

ठीक है, तकनीकी रूप से वे कर रहे हैं। [आरएफसी 1738] के अनुसार (http://www.ietf.org/rfc/rfc1738.txt), एक HTTP यूआरएल फॉर्म लेता है: http: // : /? । – naktinis

+0

@naktinis एक HTTP यूआरएल, हाँ। एक Django यूआरएल, [इतना नहीं] (https://docs.djangoproject.com/en/1.4/topics/http/urls/#how-django-processes-a-request)। तो "यूआरएल" की विभिन्न परिभाषाओं के लिए, आप दोनों सही हैं: पी –

+0

क्या इसका परिणाम यूआरएल में बाधा डालने वाली पिछली स्लैश में नहीं है, जैसे 'example.com/myview/? Office = foobar'' example.com/myview के बजाय ? कार्यालय = foobar'? –

7

सबसे पहले, एक मूर्खतापूर्ण जवाब:

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

एक गंभीर anwser: नहीं, आप कर सकते हैं 'टी। Django का यूआरएल रिज़ॉल्वर यूआरएल के पथ भाग से मेल खाता है, इस प्रकार {% url %} टैग केवल यूआरएल के उस हिस्से को उलट सकता है।

+0

। यह भी समझ में आता है ... मैं बस चाहता हूं कि यह उससे थोड़ा अधिक सुरुचिपूर्ण था। –

+0

उदाहरण के लिए आप हमेशा एक अधिक सुरुचिपूर्ण कस्टम टैग लिख सकते हैं - {% qpurl myview office = foobar%}। यह मूल्यों को संसाधित भी कर सकता है और उन्हें उचित रूप से एन्कोड कर सकता है। – Spacedman

23

एक तरह से मिश्रण-अप करने के लिए वर्तमान मापदंडों नए के साथ:

{% 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', 
) 
+1

दुर्भाग्यवश यह पैरामीटर के साथ काम नहीं करता है जो – Arthur

+0

सूचियां हैं @ आर्थर क्या यह Djangos बग है? – eri

+0

जो वास्तव में सुरुचिपूर्ण होगा, लेकिन पेजिंग के लिए काम नहीं करता है क्योंकि यह जीईटी पैराम्स से पिछले पृष्ठ के "पृष्ठ = 1" को भी जोड़ता है। – Florian

9

उपयोग urlencode अगर तर्क एक चर

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

या अन्य विशेष रिक्त स्थान जैसे वर्ण आपके यूआरएल को तोड़ सकते हैं।

url का प्रलेखन सीधे url का उपयोग कर एक विधि का उल्लेख नहीं करता: https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url

संबंधित मुद्दे