Регистрация ошибок первичного ключа в Django Admin с помощью MongoDB
во-первых, я новичок в MongoDB и это мое первое приложение, использующее его, поэтому я знаю, что мне не хватает чтения документации, но я пытаюсь найти решение этой проблемы из-за того, что в прочитанной документации говорится, что все может работать хорошо без изменений.
Я правильно настроил файл настроек с базой данных MongoDB и создал свои модели.
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'my database',
}
}
Я создал суперпользователя с помощью django-admin createsuperuser
, но когда я пытаюсь войти в панель администратора, я получаю эту ошибку.
ValueError: Cannot force an update in save() with no primary key.
Я знаю, что в MongoDB нет системы Primary Key и Foreign Key, и она основана на объектах типа JSON, но в документации сказано, что она хорошо с ней работает, поэтому я подумал, что она уже готова к запуску этого.
Есть ли какая-нибудь подсказка о том, что происходит? Спасибо.
Эта ошибка показывает, что id(primsry_key) не создан django
Причины:
1.makemigrations ваш проект django для sql базы данных (mysql, sqlite и т.д.) или облачной базы данных mongo в прошлом, а затем просто мигрируйте ваш проект без makemigrations.
2.2.создайте коллекцию auth_user (коллекции в mongodb - это почти как таблицы в sqldb) или попробуйте в прошлом createuperuser, а затем попробуйте makemigrations и мигрируйте ваш проект
Решение:
1.Подключение к вашей базе данных с mongodb с помощью компаса mongodb
1.2.Удалите базу данных вашего проекта
3.makemigrations и снова мигрируйте ваш проект django
4.createsuperuser
Наконец, проверьте, что id(django primary_key) и _id(mongodb objectId) доступны в auth_user и других коллекциях. a объект в коллекции auth_user(mongodb compass)