Один из самых больших недостатков в django заключается в том, что хотя теоретически концепция автономных приложений звучит красиво, на практике это не очень хорошо работает; даже если вы найдете какое-нибудь приложение, которое обеспечивает необходимую вам функциональность - его не всегда легко подключить и запустить - вам всегда нужно будет отредактировать / взломать его.
Оценка django как центральной платформы в моей работе по разработке подключаемых приложений привела к нескольким препятствиям:
ORM - да, это здорово - но это очень специфично и специально. Я использовал его, когда мне нужна быстрая обработка данных, но кроме этого вам нужно погрузиться в нечто правильное, например, SQLAlchemy. Одна вещь, которую мы не можем сделать легко, это выбрать случайные образцы. Это стало проблемой для нас на небольшом наборе данных (около 538 000 строк) с postgres.
Система шаблонов - опять же, очень специфична для приложений в стиле django. Нет реальной концепции сменных компонентов темы, если вы сами не разовьете ее; и это означает развитие вещей, которые уже предоставлены другими платформами.
На самом деле не то, чтобы выступать против django как такового, но отсутствие центрального места для предоставления общих услуг оказалось для нас большой проблемой. Например, нет централизованного поставщика аутентификации, к которому мы можем подключиться, нет абстрактного способа предоставления учетных данных (разделение ролей). Поэтому, когда мы перемещаем вещи на рабочие серверы; учетные данные базы данных не могут быть отредактированы на сервере (как в случае с Java), и парни из db должны возиться с моей базой кода.
Все это привело меня к тому, что серверы портала Java стали моей «платформой» и, в частности, Liferay, поскольку он поддерживает Python.
Я предлагаю вам сначала взглянуть на общую картину, прежде чем посвятить себя джанго. Мне очень нравится этот фреймворк, и я все время использую его в одноразовых проектах, но в качестве центральной платформы для разработки всего, что нам может понадобиться - django не является для нас ответом.
Я теперь делегировал django для автономных проектов - как какой-то конкретный мини-сайт для отдела. Если нам нужно использовать Python для чего-то другого, я теперь оцениваю Pyramid как более подключаемую. Для всего, что требует интеграции за пределами нашего отдела, я смотрю на Java.
Если все, что не получается - только тогда мы идем в .NET.