2013-08-22 8 views
5

मैं एक पूर्व निर्धारित डोमेन उदा से लिंक करने के लिए रिवर्स यूआरएल लुकअप उपयोग करने में सक्षम होना चाहते हैं से जोड़ने के लिएDjango यूआरएल conf किसी अन्य डोमेन

<a href="{% url 'admin_site' %}">Admin</a>

कहाँ पेज http://www.mydomain.com/home पर बैठते हो सकता है और व्यवस्थापक साइट http://admin.mydomain.com हो सकता है - या जब देव मोड में, यह हो सकता है http://devadmin.localhost

मैं वातावरण चर का उपयोग कर सेटिंग में डोमेन सेट कर सकते हैं - लेकिन पेज टेम्पलेट में उस डोमेन को रखने के लिए मुझे यूआरएल फ्रेमवर्क कैसे मिल सकता है? इस लक्ष्य को हासिल करने के लिए

दो सरल मार्ग:

  1. बस एक रीडायरेक्ट का मानना ​​है कि कम से कहीं /go/admin की तरह जो सिर्फ जो कुछ डोमेन मैं स्थापित करने के लिए रीडायरेक्ट करेगा बैठ सकता है बनाएँ।

  2. टेम्पलेट संदर्भ में अपने डोमेन को शामिल करें और जैसे <a href="{{ ADMIN_SITE }}">

href कुछ दोनों विकल्पों के काम करेगा पुनर्लेखन। लेकिन दोनों में कमी है: पहले में शामिल है और अतिरिक्त रीडायरेक्ट चरण है, दूसरा दूसरा url टैग अन्य लिंक के रूप में उपयोग नहीं करता है।

+0

अवश्य एक दृश्य के बिना हो रहा है? [RedirectView] (https://docs.djangoproject.com/en/1.5/ref/class-based-views/flattened-index/#redirectview) –

उत्तर

2

मुझे नहीं लगता कि आप सीधे अपने urls.py पर बाहरी यूआरएल जोड़ सकते हैं। वह फ़ाइल उन URL के लिए है जिन्हें django सर्वर से हल किया जाना चाहिए, इसलिए यदि पृष्ठ किसी अन्य सर्वर में है ... और, आप {% url %} का उपयोग करना चाहते हैं, यह एक रीडायरेक्ट के माध्यम से होना चाहिए।

मैं यह कर जाएगा:

from django.conf.urls import patterns, url 
from django.views.generic import RedirectView 

urlpatterns = patterns('', 
    # ... 

    url(r'^remote_admin/$', RedirectView.as_view(url='http://admin.mydomain.com'), 
     name='remote_admin'), 
    url(r'^dev_admin/$', RedirectView.as_view(url='http://devadmin.localhost'), 
     name='dev_admin'), 
) 

फिर {% url %} हमेशा की तरह काम करना चाहिए:

{% url 'remote_admin' %} 
संबंधित मुद्दे