2013-03-16 9 views
22

Si suppone che sia elencato in Settings.py automaticamente o devo aggiungerlo? Sto avendo un tempo ridicolmente difficile per presentare un file di immagine in fase di sviluppo e i documenti sono troppo concisi per i miei gusti e non mi spiegano chiaramente le cose per qualche motivo. Vorrei verificare quali sono i miei template_context_processors, ma dove si trova? Non è nel mio file settings.py. Devo modificare questo in genere?Dov'è il processore di contesto dei template in Django 1.5?

("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

ciò che è stato pubblicato è l'elenco di processori di contesto modello – catherine

risposta

45

Nella tua settings.pyTEMPLATE_CONTEXT_PROCESSORS impostazione è possibile definire.

valori predefiniti Tuttavia, Django ha definiti per questa impostazione che è

("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") 

Se si desidera aggiungere il processore contesto modello personalizzato che mantenendo i processori di default, si può fare seguendo settings.py

import django.conf.global_settings as DEFAULT_SETTINGS 

TEMPLATE_CONTEXT_PROCESSORS = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
    'custom_context_processors.my_context_processor', 
) 

Refer TEMPLATE_CONTEXT_PROCESSORS doc.

+0

Grazie mille. Ho creato un nuovo progetto Django e non vedo TEMPLATE_CONTEXT_PROCESSORS pre-compilato nel file settings.py creato automaticamente. Per servire file statici, devo copiare e incollare quanto sopra o sto andando giù per il percorso sbagliato qui? – user798719

+0

@ user798719, io non la penso così. Quella impostazione è di default, non è necessario modificarla. Inoltre, non pensare che sia necessario per servire file statici. – Rohan

+0

Grazie. Un'ulteriore domanda Se voglio aggiungere un nuovo processore di contesto personalizzato, posso aggiungere in qualche modo questo ai processori di contesto predefiniti o devo copiare la configurazione completa dei processori di contesto sul mio settings.py? – Miquel

3

Puoi controllare quali processori di contesto stanno usando la tua app saltando nella shell di django python e importando le tue impostazioni.

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

Se non li hai sovrascritti, i valori di default devono essere visualizzati.

Su file statici, controlla i tuoi STATICFILES_DIRS, che è dove il server di sviluppo di django cercherà di servire le risorse statiche: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATICFILES_DIRS.

Io uso questo nel mio settings.py:

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

questo non sarà lo stesso per voi in quanto dipenderà da come impostare il layout del progetto.

Problemi correlati