FAQ: Utilizzare Django¶
Perché ricevo un errore all’importazione di DJANGO_SETTINGS_MODULE
?¶
Assicurati che:
- La variabile d’ambiente
DJANGO_SETTINGS_MODULE
è impostata in un modulo Python completo (ad esempio «miosito.settings»). - Il modulo suddetto è nel
sys.path
(import mysite.settings
deve funzionare). - Il modulo non contiene errori di sintassi.
Non riesco a comprendere il vostro linguaggio dei template. Devo usarlo per forza?¶
Noi pensiamo che il nostro motore per il template sia la cosa migliore dopo il bacon a pezzetti, ma dobbiamo riconoscere che la scelta di un linguaggio di template è qualcosa di simile a una religione. In Django nulla richiede l’uso del suo linguaggio di template, quindi se siete attaccati a Jinja2, Mako, o qualunque altro, sentitevi liberi di usarlo.
È necessario usare il livello di astrazione modello/database?¶
No, proprio come il sistema dei template, la parte modello/database non è in alcun modo legata al resto del framework.
L’eccezione è: se usi una diversa libreria per database, non potrai usare il sito di amministrazione generato automaticamente da Django. Quella app è legata allo strato di gestione del database di Django.
Come si utilizzano i campi immagine e file?¶
Usare un FileField
o un ImageField
in un model richiede alcuni passaggi:
- Nel tuo file di configurazione, devi impostare
MEDIA_ROOT
con il path assoluto ad una directory in cui vuoi che Django salvi i file caricati. (A causa delle prestazioni, questi file non sono salvati nel database.) ImpostaMEDIA_URL
come la URL pubblica di base di quella directory. Sii sicuro che questa directory abbia il permesso di scrittura da parte dell’utenza del Web server. - Aggiungi il
FileField
oImageField
al tuo model, definendo l’opzioneupload_to
per specificare una sottodirectory diMEDIA_ROOT
da usare per i file inviati al server. - Tutto ciò che sarà memorizzato nel tuo database è un path al file (relativo a
MEDIA_ROOT
). Probabilmente vorrai usare la comodità dell’attributourl
fornito da Django. Per esempio, se il tuoImageField
si chiamamug_shot
, in un template puoi avere il path assoluto alla tua immagine con{{ object.mug_shot.url }}
.
Come faccio a rendere disponibile una variabile a tutti i miei template?¶
A volte i tuoi templates hanno tutti bisogno della stessa cosa. Un esempio sono i menu generati dinamicamente. A prima vista, sembra logico aggiungere un dizionario comune al contesto del template.
Il modo migliore per farlo in Django è usare: `` RequestContext``. I dettagli su come farlo sono qui: Using RequestContext.