Обычные модели Django не имеют серверной части, поддерживающей хранилище данных GAE. Следовательно, вы не можете использовать модели Django, и, следовательно, формы моделей Django. Что вам нужно сделать, это использовать модели, основанные на python db.Model () от GAE. Вместо использования класса ModelForm в Django для форм вы должны использовать google.appengine.ext.db.djangoforms. Обратите внимание, что это специально для ModelForms, другие формы работают нормально, так как они не привязаны к базе данных.
Я могу вспомнить две веские причины использовать Django-nonrel:
1a) у вас уже есть проект на Django. Использование Django-nonrel было бы самым ленивым способом. Переписать модели для моделей GAE не так уж сложно, но это может быть небольшой болью, особенно если
1b) вы используете много существующих компонентов Django, и вам придется пройти через все из них, чтобы обновить модели и формы.
2) Вы хотите застраховать свои ставки против GAE. Использование Django-nonrel позволит вам с минимальными усилиями переключиться на MongoDB, поскольку Django-nonrel имеет функционирующий бэкэнд MongoDB. Нынешние сопровождающие Django-nonrel, похоже, больше заинтересованы в MongoDB.
Поработав с Джанго-нонрелом, я до сих пор сталкиваюсь с некоторыми причинами, по которым это может быть плохим выбором:
1) Нет поддержки запросов предков. Хотя для этого есть невыполненный запрос. Это не будет совместимо с любым другим бэкэндом БД.
2) Выходит ndb, и, похоже, у него будет еще несколько преимуществ, которые, скорее всего, не увидят поддержки на Django-nonrel.
Если вы используете собственный db API GAE, основным преимуществом Django будет проверка формы. В противном случае webapp2 + jinja2 + gae db.Models () предоставит функциональность, аналогичную Django.