I am trying to connect Django with MongoDB using Djongo. I have changed the Database parameter but I am getting this error Not Implemented Error: Database objects do not implement truth value testing or bool(). when I am running makemigration command.
Please can anybody explain why I am getting this error and how to resolve it?
I have include settings.py file, error log and mongodb compass setup image.
settings.py
""" Django settings for Chatify project. Generated by 'django-admin startproject' using Django 3.2.9. For more information on this file, see https://docs.djangoproject.com/en/3.2/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/3.2/ref/settings/ """ from pathlib import Path # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'django-insecure-1k4mo05el_0112guspx^004n-i&3h#u4gyev#27u)tkb8t82_%' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'api.apps.ApiConfig', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'Chatify.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'Chatify.wsgi.application' # Database # https://docs.djangoproject.com/en/3.2/ref/settings/#databases # DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': BASE_DIR / 'db.sqlite3', # } # } DATABASES = { 'default': { 'ENGINE': 'djongo', 'NAME': 'users', } } # Password validation # https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization # https://docs.djangoproject.com/en/3.2/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.2/howto/static-files/ STATIC_URL = '/static/' # Default primary key field type # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
Error Log
File "manage.py", line 22, in <module> main() File "manage.py", line 18, in main execute_from_command_line(sys.argv) File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagement__init__.py", line 419, in execute_from_command_line utility.execute() File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagement__init__.py", line 413, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagementbase.py", line 367, in run_from_argv connections.close_all() File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjangodbutils.py", line 213, in close_all connection.close() File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjangoutilsasyncio.py", line 33, in inner return func(*args, **kwargs) File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjangodbbackendsbasebase.py", line 294, in close self._close() File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjongobase.py", line 208, in _close if self.connection: File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagespymongodatabase.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 Local Database Image
Advertisement
Answer
The problem is with the new version of pymongo (4.0 from 29.11.2021) which is not supported by Djongo 1.3.6. You need to install pymongo 3.12.1. I had the same problem 2 hours ago.