मैंने सेटिंग्स सेट करने के लिए http://effbot.org/zone/django-multihost.htm पर मिली multihost.py मिडलवेयर को संशोधित किया है। SITE_ID गतिशील रूप से, लेकिन कुछ चिंताएं हैं जिन्हें मैंने अभी आरक्षण छोड़ दिया होगा।Django में मिडलवेयर से सेटिंग्स SITE_ID को संशोधित करने के लिए सुरक्षित?
एकाधिक डोमेन होस्टिंग के लिए मुझे मिले अधिकांश उदाहरण कई सेटिंग्स.py फ़ाइलों के साथ सेट किए गए हैं जो उनके संबंधित SITE_IDs में हार्डकोड किए गए हैं।
क्या मैंने यहां एक घातक दोष के साथ एक फिक्स बनाया है? इस मूल्य को बदलकर गतिशील रूप से मुझे ** पर काट देगा।
from django.conf import settings
from django.contrib.sites.models import Site
class MultiHostMiddleware:
def process_request(self, request):
try:
host_raw = request.META["HTTP_HOST"]
colon = host_raw.find(':')
if colon > -1:
host = host_raw[0:colon]
else:
host = host_raw
s = Site.objects.get(domain=host)
if s:
settings.SITE_ID = s.id
except KeyError:
pass # use default urlconf (settings.ROOT_URLCONF)
उत्सुकता के लिए यह अब तक चल रहा है और चल रहा है, लेकिन वास्तविक ट्रैफ़िक तक नहीं खड़ा है।
कोई विचार नहीं कि यह काम करेगा या नहीं, लेकिन मुझे आश्चर्य है कि होस्ट नाम (http://docs.python.org/library/urlparse.html) प्राप्त करने के लिए 'urlparse' का उपयोग करना बेहतर होगा या नहीं। –
अतिरिक्त जानकारी, यह कोड लगभग 2 सप्ताह के लिए 2 डोमेन साइट पर मौजूद है, जिसमें कोई स्पष्ट ग्लिच नहीं है। काफी कम यातायात लेकिन मुझे लगता है कि अवधारणा रखती है। –