मैं टैग पर अनुरोध पैरामीटर जोड़ना चाहता हूं, जैसे ?office=foobar
।क्या Django के {% url%} टेम्पलेट टैग के माध्यम से क्वेरी पैरामीटर पास करना संभव है?
क्या यह संभव है? मुझे इस पर कुछ भी नहीं मिला।
मैं टैग पर अनुरोध पैरामीटर जोड़ना चाहता हूं, जैसे ?office=foobar
।क्या Django के {% url%} टेम्पलेट टैग के माध्यम से क्वेरी पैरामीटर पास करना संभव है?
क्या यह संभव है? मुझे इस पर कुछ भी नहीं मिला।
नहीं, क्योंकि जीईटी पैरामीटर यूआरएल का हिस्सा नहीं हैं।
आप समाप्त करने के लिए उन्हें जोड़ने:
<a href="{% url myview %}?office=foobar">
Django के लिए 1.5+
<a href="{% url 'myview' %}?office=foobar">
सबसे पहले, एक मूर्खतापूर्ण जवाब:
{% url my-view-name %}?office=foobar
एक गंभीर anwser: नहीं, आप कर सकते हैं 'टी। Django का यूआरएल रिज़ॉल्वर यूआरएल के पथ भाग से मेल खाता है, इस प्रकार {% url %}
टैग केवल यूआरएल के उस हिस्से को उलट सकता है।
। यह भी समझ में आता है ... मैं बस चाहता हूं कि यह उससे थोड़ा अधिक सुरुचिपूर्ण था। –
उदाहरण के लिए आप हमेशा एक अधिक सुरुचिपूर्ण कस्टम टैग लिख सकते हैं - {% qpurl myview office = foobar%}। यह मूल्यों को संसाधित भी कर सकता है और उन्हें उचित रूप से एन्कोड कर सकता है। – Spacedman
एक तरह से मिश्रण-अप करने के लिए वर्तमान मापदंडों नए के साथ:
{% 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
का प्रलेखन सीधे url
का उपयोग कर एक विधि का उल्लेख नहीं करता: https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url
ठीक है, तकनीकी रूप से वे कर रहे हैं। [आरएफसी 1738] के अनुसार (http://www.ietf.org/rfc/rfc1738.txt), एक HTTP यूआरएल फॉर्म लेता है: http: //: /? । –
naktinis
@naktinis एक HTTP यूआरएल, हाँ। एक Django यूआरएल, [इतना नहीं] (https://docs.djangoproject.com/en/1.4/topics/http/urls/#how-django-processes-a-request)। तो "यूआरएल" की विभिन्न परिभाषाओं के लिए, आप दोनों सही हैं: पी –
क्या इसका परिणाम यूआरएल में बाधा डालने वाली पिछली स्लैश में नहीं है, जैसे 'example.com/myview/? Office = foobar'' example.com/myview के बजाय ? कार्यालय = foobar'? –