2012-12-04 10 views
6

Sono ancora nuovo in Django e ho alcune domande su come utilizzare le viste integrate. Ho notato che djang è dotato di una vista di modifica della password integrata in django.contrib.auth.views.password_change. Questa vista mostra il sito di amministrazione sullo sfondo del modello, mentre voglio fornire il mio css/modello ma mantenere il modulo e la funzionalità di quella vista. Come lo farei? Puoi passare qualcosa nella urls.pyCambio di password Django modulo di visualizzazione

r'password_change/$', 'django.contrib.auth.views.password_change') 

come un modello personalizzato? Non sono sicuro del modo corretto per farlo.

risposta

11

È possibile specificare il modello che deve essere utilizzato impostando l'argomento template_name:

(r'password_change/$', 'django.contrib.auth.views.password_change', {'template_name': 'path/to/password_reset.html'}) 

Nel modello assicurarsi di utilizzare la variabile fornito {{ form }} modello e sei a posto.

6

Django tenterà di caricare i modelli prima dall'applicazione, quindi ripiegherà. Così, per ignorare i modelli per contrib.auth, è sufficiente:

  1. Creare una directory chiamata auth nella directory modello.
  2. Creare un modello con lo stesso nome che si prevede di caricare nella vista incorporata.
  3. Non v'è alcun punto 3.
+0

Non è forse il contrario, allora? Prima nella directory dei modelli di progetto e poi ricollega all'app? – Alvaro

+0

Con "la tua applicazione" intendo il progetto Django. La directory template a cui faccio riferimento in "Step 1" è la directory template principale nel * progetto *. Se aggiungi una directory a quella già presente in Django, la directory dei modelli sovrascriverà quella incorporata. – Brandon

0

Inoltre è possibile fornire un URL per il cambiamento di successo con:

url(r'^password/$', 'django.contrib.auth.views.password_change', {'post_change_redirect' : '/password-changed/','template_name': 'password.html'},), 
+1

castilo, stai affrontando la risposta accettata o la domanda? Prova a rendere la tua risposta un po 'più chiara a riguardo – Miki