Почему я получаю ошибку "Not Implemented Error: Объекты базы данных не реализуют проверку истинности значения или bool()." при выполнении команды makemigration в django
Я пытаюсь соединить Django с MongoDB с помощью Djongo. Я изменил параметр Database, но получаю эту ошибку Not Implemented Error: Database objects do not implement truth value testing or bool(). когда я выполняю команду makemigration.
Пожалуйста, кто-нибудь может объяснить, почему я получаю эту ошибку и как ее устранить?
Я включил файл settings.py, журнал ошибок и изображение установки компаса mongodb.
settings.py
Журнал ошибок
File "manage.py", line 22, in <module>
main()
File "manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "C:\Users\DELL\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\management\__init__.py", line 419, in execute_from_command_line
utility.execute()
File "C:\Users\DELL\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\management\__init__.py", line 413, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\DELL\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\management\base.py", line 367, in run_from_argv
connections.close_all()
File "C:\Users\DELL\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\utils.py", line 213, in close_all
connection.close()
File "C:\Users\DELL\AppData\Local\Programs\Python\Python37\lib\site-packages\django\utils\asyncio.py", line 33, in inner
return func(*args, **kwargs)
File "C:\Users\DELL\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\backends\base\base.py", line 294, in close
self._close()
File "C:\Users\DELL\AppData\Local\Programs\Python\Python37\lib\site-packages\djongo\base.py", line 208, in _close
if self.connection:
File "C:\Users\DELL\AppData\Local\Programs\Python\Python37\lib\site-packages\pymongo\database.py", line 829, in __bool__
raise NotImplementedError("Database objects do not implement truth "
NotImplementedError: Database objects do not implement truth value testing or bool(). Please compare with None instead: database is not None
MongoDBCompass Образ локальной базы данных MongoDB
Проблема связана с новой версией pymongo (4.0 от 29.11.2021), которая не поддерживается Djongo 1.3.6. Вам нужно установить pymongo 3.12.1. У меня была такая же проблема 2 часа назад
Я изменил версию python на python==3.6.9 и теперь он работает и успешно мигрирует.
Попробуйте установить django-mongoengine и это точно решит проблему.
Изменил свою версию pymongo
обратно на 3.12.1
и теперь это работает, и забавный факт: это произошло на производстве, мой клиент дал мне около 20 звонков за час, это будет пугать меня ночью.