2013-03-16 27 views
22

Ayarlar.py'de otomatik olarak listelenmesi mi gerekiyor yoksa eklemek mi gerekiyor? Gelişmekte olan bir görüntü dosyası sunarken gülünç bir şekilde zor zaman geçiriyorum ve dokümanlar benim zevkim için çok gergin ve bazı sebeplerden ötürü bana açık bir şekilde heceleyemiyorum. Benim template_context_processors ne olduğunu görmek için kontrol etmek istiyorum, ama nerede bulunur? Settings.py dosyasında değil. Bunu tipik olarak düzenlemeniz gerekiyor mu? senin settings.py Tanımlayabileceğiniz TEMPLATE_CONTEXT_PROCESSORS ayarındaDjango 1.5'deki şablon içerik işlemcisi nerede?

("django.contrib.auth.context_processors.auth", 
"django.core.context_processors.debug", 
"django.core.context_processors.i18n", 
"django.core.context_processors.media", 
"django.core.context_processors.static", 
"django.contrib.messages.context_processors.messages") 
+0

Ne gönderiyorsunuz şablon içerik işlemcisinin listesi – catherine

cevap

45

. Varsayılan işlemcileri korumak için özel şablon bağlam işlemci eklemek istiyorsanız

("django.contrib.auth.context_processors.auth", 
"django.core.context_processors.debug", 
"django.core.context_processors.i18n", 
"django.core.context_processors.media", 
"django.core.context_processors.static", 
"django.core.context_processors.tz", 
"django.contrib.messages.context_processors.messages") 

bu ayar için

Ancak django tanımlamıştır varsayılan değerler, sen settings.py

import django.conf.global_settings as DEFAULT_SETTINGS 

TEMPLATE_CONTEXT_PROCESSORS = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
    'custom_context_processors.my_context_processor', 
) 
aşağıdaki yapabilirsiniz

Bkz. TEMPLATE_CONTEXT_PROCESSORS doc.

+0

Çok teşekkür ederim. Yeni bir Django projesi oluşturdum ve otomatik oluşturulan settings.py dosyasında önceden doldurulmuş olan TEMPLATE_CONTEXT_PROCESSORS öğesini göremedim. Statik dosyaları sunmak için, yukarıdakileri kopyalayıp yapıştırmam gerekiyor mu yoksa yanlış yoldan mı geçiyorum? – user798719

+0

@ user798719, Ben öyle düşünmüyorum. Bu ayar varsayılan olarak, düzenlemenize gerek yoktur. Ayrıca, bu statik dosyaları sunmak için gerekli olduğunu düşünmeyin. – Rohan

+0

Teşekkürler. Bir başka soru. Yeni bir özel içerik işlemci eklemek istiyorsam, bunu bir şekilde varsayılan bağlam işleyicilerine ekleyebilir miyim veya tüm içerik işlemcisi yapılandırmasını settings.py sayfamda kopyalamam gerekir mi? – Miquel

3

Uygulamanızın kullandığı içerik işlemcilerini, django python kabuğuna atlayıp ayarlarınızı içe aktararak kontrol edebilirsiniz.

$ manage.py shell 
> from django.conf import settings 
> settings.TEMPLATE_CONTEXT_PROCESSORS 

Onları geçersiz kılmadıysanız, varsayılanlar oluşturulmalıdır.

Statik dosyalarda, django geliştirme sunucusunun statik varlıklara hizmet vereceği STATICFILES_DIRS ürününü kontrol edin: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATICFILES_DIRS.

Ben benim settings.py bu kullanın: Eğer projenizi düzeni nasıl bağlıdır olarak

from os.path import join, abspath 
PROJECT_ROOT = abspath(join(dirname(__file__), '..', '..')) 
STATICFILES_DIRS = [join(PROJECT_ROOT, 'public'), ] 

Bu sizin için aynı olmayacaktır.