Почему я получаю ошибку "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 звонков за час, это будет пугать меня ночью.

Вернуться на верх