Из своего опыта я знаю, что управление приложением, в котором вы генерируете HTML на стороне сервера и просто «вставляете» его в свои страницы, становится кошмаром. Также невозможно выполнить тестирование с использованием тестовой среды Django. Если вы используете Selenium или аналогичный инструмент, это нормально, но вам нужно подождать, пока запрос ajax вернется, поэтому вам понадобится множество снов в вашем тестовом скрипте, что может замедлить ваш набор тестов.
Если целью использования техники Ajax является создание хорошего пользовательского интерфейса, я бы рекомендовал пойти ва-банк, например интерфейс GMail, и делать все в браузере с помощью JavaScript. Я написал несколько таких приложений, используя только jQuery, конечные автоматы для управления состоянием пользовательского интерфейса и JSON с ReST на бэкэнде. Django, IMHO, идеально подходит для бэкэнда в этом случае. Есть даже стороннее программное обеспечение для генерации ReST-интерфейса для ваших моделей, которое я никогда не использовал сам, но насколько я знаю, они хороши в простых вещах, но вам, конечно, все равно нужно делать свою собственную бизнес-логику .
При таком подходе вы сталкиваетесь с проблемой дублирования кода в JS и в вашем бэкэнде, такой как обработка форм, проверка правильности и т. Д. Я думал о решении этой проблемы путем генерации структурированной информации о формах и логике проверки. который я могу использовать в JS. Это может быть скомпилировано во время развертывания и загружено как любой другой файл JS.
Кроме того, избегайте XML. Браузеры медлят при его разборе, генерировать боль и работать с ней в браузере. Используйте JSON.