मान लीजिए कि मेरे पास नीचे एक यूआरएल कॉन्फ़िगर है, और 'foo'
और 'bar'
page_slug
के लिए मान्य मान हैं।अतिरिक्त विकल्पों के साथ Django यूआरएल को रिवर्स करना
urlpatterns = patterns('',
(r'^page/(?P<page_slug>.*)/', 'myapp.views.someview'),
)
फिर, मैं नीचे दिए गए यूआरएल का पुनर्निर्माण कर सकता हूं, है ना?
>>> from django.core.urlresolvers import reverse
>>> reverse('myapp.views.someview', kwargs={'page_slug': 'foo'})
'/page/foo/'
>>> reverse('myapp.views.someview', kwargs={'page_slug': 'bar'})
'/page/bar/'
लेकिन अगर मैं अपना URLconf इस में बदलूं तो क्या होगा?
>>> from django.core.urlresolvers import reverse
>>> reverse('myapp.views.someview', kwargs={'page_slug': 'foo'})
'/foo-direct/'
>>> reverse('myapp.views.someview', kwargs={'page_slug': 'bar'})
'/my-bar-page/'
बहरहाल, यह एक NoReverseMatch
अपवाद फेंकता है:
urlpatterns = patterns('',
(r'^foo-direct/', 'myapp.views.someview', {'page_slug': 'foo'}),
(r'^my-bar-page/', 'myapp.views.someview', {'page_slug': 'bar'}),
)
मैं इस परिणाम की उम्मीद। मुझे संदेह है कि मैं कुछ असंभव करने की कोशिश कर रहा हूं। मैं जो चाहता हूं उसे पूरा करने के लिए एक सैनर तरीके से कोई सुझाव?
नामांकित यूआरएल एक विकल्प नहीं हैं, क्योंकि मैं उन अन्य ऐप्स को नहीं चाहता जो इन्हें लिंक करते हैं ताकि URL संरचना (encapsulation और वह सब) के विनिर्देशों के बारे में जान सकें।
आप "काम नहीं करता है" क्या मतलब है? त्रुटि संदेश? यदि ऐसा है तो क्या? –
यह 'NoReverseMatch' अपवाद फेंकता है। –
कृपया नए तथ्यों के साथ प्रश्न अपडेट करें - उपयोगी जानकारी को टिप्पणियों के रूप में न जोड़ें। –