Джанго с MongoDB

ОК. Я начинаю проект в django 1.4, и я хочу MongoDB в качестве моего бэкэнда. После полдня поиска в Google я понял, что mongoengine - лучший вариант (так как это активный проект и предоставляет django как orm)

Теперь проблема 1. Я не могу найти ни одного хорошего пошагового руководства по установке для интеграции mongoengine с проектом django.

  1. Я понимаю, использование mongoengine означает, что я заменяю django orm и нет необходимости делать syncdb. теперь этот проект имеет мультитенантную архитектуру (*.domain.com), которую я собираюсь решить с помощью промежуточного программного обеспечения.. также значительная часть этого проекта будет работать на администраторе django. Вопрос: повлияет ли замена django orm на mongoengine на администратор django и другие операции (такие как промежуточное ПО, аутентификация и т. Д.)?

Я также открыт для предложений и критики.

3 ответа

Решение

Django Admin предназначен для работы только с Django ORM. Использование MongoEngine и отсутствие Django ORM означает, что вы не получите автоматический интерфейс администратора. Другое промежуточное программное обеспечение может использовать Django ORM или быть достаточно абстрагированным, чтобы позволить вам подключить MongoEngine, например: Sessions and Authentication.

В MongoEngine есть несколько помощников для Django, но они ни в коем случае не являются полными или не предназначены для замены ORM в Django.

Для получения дополнительной информации см. Эту презентацию от Django Conf Finland: http://staltz.github.io/djangoconfi-mongoengine

На всякий случай ситуация изменилась, и сейчас есть решение этой проблемы, а именно django-mongoadmin.

Руководство по интеграции Django с MongoDB

Способ связать Django с MongoDB, добавив всего одну строку кода:

Сначала установите djongo:

pip install djongo

Затем запустите ваши миграции:

manage.py make migrations
manage.py migrate

и, наконец, добавьте в ваш файл настроек:

DATABASES = {
   ‘default’: {
      ‘ENGINE’: ‘djongo’,
      ‘NAME’: ‘your-db-name’,
   }
}

Это так просто!

Если вы хотите манипулировать MongoDB с помощью Django Admin, просто запустите его:

manage.py runserver

Перейти: http://localhost:8000/admin/

Управляйте встроенными моделями, как показано на этом снимке экрана:

Для получения дополнительной информации ознакомьтесь с документацией по djongo.

Вы должны определенно рассмотреть преимущества и недостатки использования НОВОГО фреймворка (например, MongoEngine) по сравнению с использованием встроенного Django ORM. Прочтите этот урок, прежде чем подумать о принятии MongoEngine, как это предлагают другие знающие участники! Не в обиду!

Дайте мне знать, если вы согласны с таким подходом в комментариях:)

Другие вопросы по тегам