Per esperienza, so che gestire un'applicazione in cui si genera l'HTML sul lato server e semplicemente "inserirla" nelle proprie pagine, diventa un incubo. È anche impossibile testare usando il framework di test di Django. Se stai usando Selenium o uno strumento simile, va bene, ma devi aspettare che la richiesta di ajax venga restituita, quindi hai bisogno di tonnellate di sonno nello script di test, il che potrebbe rallentare la tua suite di test.
Se lo scopo di utilizzare la tecnica Ajax è quello di creare una buona interfaccia utente, consiglierei di andare all in, come l'interfaccia GMail, e fare tutto nel browser con JavaScript. Ho scritto diverse app come questa usando nient'altro che jQuery, macchine a stati per la gestione dello stato dell'interfaccia utente e JSON con ReST sul backend. Django, IMHO, è un abbinamento perfetto per il back-end in questo caso. Esistono anche software di terze parti per la generazione di un'interfaccia ReST per i tuoi modelli, che non ho mai usato io stesso, ma per quanto ne so sono bravissimi alle cose semplici, ma ovviamente devi ancora fare la tua logica di business .
Con questo approccio, si incontra il problema della duplicazione del codice nel JS e nel back-end, come la gestione dei moduli, la convalida, ecc.Ho pensato di risolvere questo problema con la generazione di informazioni strutturate sulle forme e sulla logica di convalida che posso utilizzare in JS. Questo potrebbe essere compilato in fase di distribuzione e caricato come qualsiasi altro file JS.
Inoltre, evitare XML. I browser sono lenti a analizzarlo, è un dolore da generare e un dolore con cui lavorare nel browser. Usa JSON.
Cosa c'è di così speciale in Ajax? Dal punto di vista del Django queste sono solo richieste. – GabiMe
Nient'altro, ma mi trovo a odiare, ad esempio, il mixing del rendering dei template con il normale ciclo di richiesta/risposta e il contenuto proveniente dalle richieste di ajax. Sembra impuro. –