Domanda

James Bennett s 'eccellente django-modulo di contatto ma hanno colpito un intoppo. La mia pagina di contatto non contiene solo la forma, ma anche informazioni aggiuntive pagina piatta.

senza dover riscrivere la vista esistente il modulo di contatto usa, mi piacerebbe essere in grado di avvolgere, o la catena, i punti di vista. In questo modo ho potuto iniettare alcune informazioni aggiuntive tramite il contesto in modo che sia la forma che i dati della pagina piatte potrebbero essere resi all'interno dello stesso modello.

Ho sentito detto che questo è possibile, ma io non riesco a capire come farlo funzionare. Ho creato il mio punto di vista involucro, chiamato il contatto visuale modulo, ed ho tentato di ispezionare l'oggetto HttpResponse per un attributo che posso aggiungere a, ma io non riesco a capire quale, se del caso, lo è.

Modifica James ha commentato che l'ultimo codice può essere trovato nuova qui a BitBucket.

È stato utile?

Soluzione

  1. Scrivi un wrapper che utilizza l'URL per cercare l'oggetto di pagina piatta appropriata.
  2. Dal tuo involucro, chiamata (e restituire la risposta da parte) la vista modulo di contatto, passando per la pagina di piatto in extra_context argomento (che è lì per, tra le altre cose, proprio questo tipo di caso d'uso).
  3. Non c'è una terza fase.

Altri suggerimenti

C'è un processore contesto che può fare quello che vuoi.

http://docs.djangoproject.com/en/dev/ rif / templates / api /

Probabilmente si può aggiungere i vari pezzi di "informazioni della pagina piatta" al contesto.

processori di contesto sono quello che stai pensando di. E render_to_response è irrilevante. Il pezzo di informazioni richieste è se la visualizzazione utilizza RequestContext o no, come è quello che attiva processori di contesto.

Diversi da quelli, non c'è modo di vedute "catena" da aggiungere al contesto - si può avvolgere una visualizzazione in un altro e modificare i dati che entrano in esso, ma non può aggiungi al contesto che modo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top