2013-03-19 12 views
6

Windows 7
Python 2.7.3
Django 1.5
pitone manage.py runserverdjango tutorial: personalizzati 404 e 500 viste

sto seguendo il tutorial come disponibili al 'https://docs.djangoproject.com/en/1.5/intro/tutorial03/'

I arrivato fino alla "Write a 404 (page not found) view" prima che le cose diventassero strane.

Ho cercato di capire come creare una vista 404 personalizzata. Tuttavia, non sono sicuro:

A. Dove risiede esattamente il file 404.html personalizzato. Dovrebbe essere nell'albero della directory del progetto o nell'albero della directory Django. Il mio progetto di directory assomiglia a questo,

1> mysite 
2>  - mysite 
3>  - polls 
4>   - templates 
5>    - polls 
6>  - templates 
7>   - admin 

Attualmente il 404.html è @ 6>

B. Quali modifiche devono essere fatte dove? Capisco che un handler404 e un handler500 debbano essere impostati nell'URL "root" conf. Ho un url.py che risiede in @ 2> e 3> (vedi albero sopra). Supponendo che 2> è il posto giusto presumo che la sintassi è la seguente,

handler404 = 'templates.404' 
handler500 = 'templates.500' 

Che altro deve essere impostato, dove?

risposta

7

Come posso vedere hai un piccolo errore, ma non ti preoccupare.

sguardo, provate questo:

handler404 = 'mysite.views.error404' 

Poi nel mysite (il secondo miosito) crea un views.py se non avete. In that views.py put:

from django.shortcuts import render 

def error404(request): 
    return render(request,'404.html') 

e tutto qui! Nei modelli, crea quel file e fai qualcosa di carino!

Ricordare che funziona solo in produzione (DEBUG=False) altrimenti django utilizza il traceback. È lo stesso per 505, e forse puoi provare handler404 = 'polls.views.see404' e inserire in views.py ma poi sai, i gusti sono diversi hehehe.

Ora, provare qualcosa di diverso, per esempio: commentare nel urls.py

#handler404 = 'mysite.views.error404'

e rimuovere anche nel views.py DEF.

Nell'indice del file di modelli viene creato un semplice file 404.html. Eseguire il server in produzione e produrre quell'errore 404, cosa è successo?

+2

hai dimenticato di inserire il codice di stato 404 – DataGreed

Problemi correlati