2016-12-05 3 views
6

मैं 1.10 Django के लिए एक परियोजना का उन्नयन कर रहा हूँ और वह ऐसा कोड है:कैसे Django में नए खाके की स्थापना में डिफ़ॉल्ट TEMPLATE_CONTEXT_PROCESSORS शामिल करने के लिए 1.10

from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP 

TEMPLATE_CONTEXT_PROCESSORS = TCP + (
    'django.template.context_processors.debug', 
    'django.template.context_processors.i18n', 
    'django.template.context_processors.media', 
    'django.template.context_processors.static', 
    'django.contrib.auth.context_processors.auth', 
    'django.contrib.messages.context_processors.messages', 
    'django.template.context_processors.request', 
) 

जहां तक ​​मेरा बता सकते हैं यह था एक सामान्य संदर्भ प्रोसेसर सुनिश्चित करने के लिए Django के पिछले संस्करणों का उपयोग करते समय सामान्य पैटर्न।

Django 1.10 TEMPLATE_CONTEXT_PROCESSORS में TEMPLATES सेटिंग जो अब कुछ इस तरह परिभाषित किया जाना चाहिए के पक्ष में हटा दिया गया था:

TEMPLATES = [ 
    { 
     ..., 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       ... 
      ], 
     }, 
    }, 
] 

कैसे TEMPLATES सेटिंग ठीक से पहले कोड नमूने के व्यवहार से मेल करने के परिभाषित किया जाना चाहिए, यानी यह सुनिश्चित करना कि डिफ़ॉल्ट संदर्भ प्रोसेसर हमेशा शामिल हैं? क्या मुझे मैन्युअल रूप से django.conf.global_settings में जो कुछ भी था, उसे मैन्युअल रूप से शामिल करना चाहिए? Django 1.10 डिफ़ॉल्ट रूप से परिभाषित डिफ़ॉल्ट है? क्या कोई नया संदर्भ प्रोसेसर है जो शायद डिफ़ॉल्ट रूप से शामिल किया जाना चाहिए?

उत्तर

0

अनपैक टीसीपी डिफ़ॉल्ट संदर्भ प्रोसेसर से पहले अगर कम संस्करणों

एक टेम्पलेट विन्यास के लिए पर अजगर 3.

from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP 

# Python 3.6 
TEMPLATES = [ 
    { 
     ..., 
     'OPTIONS': { 
      'context_processors': [ 
       *TCP, 
       'django.template.context_processors.debug', 
       ... 
      ], 
     }, 
    }, 
] 

पर चल रहा है:

TEMPLATE = { 
     ..., 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       ... 
      ], 
     }, 
    } 

TEMPLATE['OPTIONS']['context_processors'] = (
    TCP + TEMPLATE['OPTIONS']['context_processors']) 

TEMPLATES = [TEMPLATE, ] 

कई टेम्प्लेट के लिए विन्यास:

TEMPLATES = [...] 

for template in TEMPLATES: 
    template['OPTIONS']['context_processors'] = (
     TCP + template['OPTIONS']['context_processors']) 
0

प्रश्न यह है कि "टेम्पलेट सेटिंग को पहले कोड नमूने के व्यवहार से मेल खाने के लिए कैसे परिभाषित किया जाना चाहिए, यानी यह सुनिश्चित करना कि डिफ़ॉल्ट संदर्भ प्रोसेसर हमेशा शामिल हैं? "

मेरा उत्तर, एक समान स्थिति में, एक डमी निर्देशिका बनाना था और इसमें 'django-admin startproject foo' चलाया गया था। फिर मैंने टेम्पलेट के जेनरेट किए गए मान को देखने के लिए foo/foo/settings.py की जांच की।

यह टेम्पलेट्स को सेट करने के तरीके के बारे में हर प्रश्न का उत्तर नहीं दे सकता है। लेकिन यह टेम्पलेट की डिफ़ॉल्ट सामग्री के बारे में आपके प्रश्न का उत्तर देता है।

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