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
JavaScript
x
135
135
1
"""
2
Django settings for Chatify project.
3
4
Generated by 'django-admin startproject' using Django 3.2.9.
5
6
For more information on this file, see
7
https://docs.djangoproject.com/en/3.2/topics/settings/
8
9
For the full list of settings and their values, see
10
https://docs.djangoproject.com/en/3.2/ref/settings/
11
"""
12
13
from pathlib import Path
14
15
# Build paths inside the project like this: BASE_DIR / 'subdir'.
16
BASE_DIR = Path(__file__).resolve().parent.parent
17
18
19
# Quick-start development settings - unsuitable for production
20
# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
21
22
# SECURITY WARNING: keep the secret key used in production secret!
23
SECRET_KEY = 'django-insecure-1k4mo05el_0112guspx^004n-i&3h#u4gyev#27u)tkb8t82_%'
24
25
# SECURITY WARNING: don't run with debug turned on in production!
26
DEBUG = True
27
28
ALLOWED_HOSTS = []
29
30
31
# Application definition
32
33
INSTALLED_APPS = [
34
'django.contrib.admin',
35
'django.contrib.auth',
36
'django.contrib.contenttypes',
37
'django.contrib.sessions',
38
'django.contrib.messages',
39
'django.contrib.staticfiles',
40
'api.apps.ApiConfig',
41
]
42
43
MIDDLEWARE = [
44
'django.middleware.security.SecurityMiddleware',
45
'django.contrib.sessions.middleware.SessionMiddleware',
46
'django.middleware.common.CommonMiddleware',
47
'django.middleware.csrf.CsrfViewMiddleware',
48
'django.contrib.auth.middleware.AuthenticationMiddleware',
49
'django.contrib.messages.middleware.MessageMiddleware',
50
'django.middleware.clickjacking.XFrameOptionsMiddleware',
51
]
52
53
ROOT_URLCONF = 'Chatify.urls'
54
55
TEMPLATES = [
56
{
57
'BACKEND': 'django.template.backends.django.DjangoTemplates',
58
'DIRS': [],
59
'APP_DIRS': True,
60
'OPTIONS': {
61
'context_processors': [
62
'django.template.context_processors.debug',
63
'django.template.context_processors.request',
64
'django.contrib.auth.context_processors.auth',
65
'django.contrib.messages.context_processors.messages',
66
],
67
},
68
},
69
]
70
71
WSGI_APPLICATION = 'Chatify.wsgi.application'
72
73
74
# Database
75
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
76
77
# DATABASES = {
78
# 'default': {
79
# 'ENGINE': 'django.db.backends.sqlite3',
80
# 'NAME': BASE_DIR / 'db.sqlite3',
81
# }
82
# }
83
DATABASES = {
84
'default': {
85
'ENGINE': 'djongo',
86
'NAME': 'users',
87
}
88
}
89
90
91
# Password validation
92
# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators
93
94
AUTH_PASSWORD_VALIDATORS = [
95
{
96
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
97
},
98
{
99
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
100
},
101
{
102
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
103
},
104
{
105
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
106
},
107
]
108
109
110
# Internationalization
111
# https://docs.djangoproject.com/en/3.2/topics/i18n/
112
113
LANGUAGE_CODE = 'en-us'
114
115
TIME_ZONE = 'UTC'
116
117
USE_I18N = True
118
119
USE_L10N = True
120
121
USE_TZ = True
122
123
124
# Static files (CSS, JavaScript, Images)
125
# https://docs.djangoproject.com/en/3.2/howto/static-files/
126
127
STATIC_URL = '/static/'
128
129
# Default primary key field type
130
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
131
132
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
133
134
135
Error Log
JavaScript
1
22
22
1
File "manage.py", line 22, in <module>
2
main()
3
File "manage.py", line 18, in main
4
execute_from_command_line(sys.argv)
5
File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagement__init__.py", line 419, in execute_from_command_line
6
utility.execute()
7
File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagement__init__.py", line 413, in execute
8
self.fetch_command(subcommand).run_from_argv(self.argv)
9
File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjangocoremanagementbase.py", line 367, in run_from_argv
10
connections.close_all()
11
File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjangodbutils.py", line 213, in close_all
12
connection.close()
13
File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjangoutilsasyncio.py", line 33, in inner
14
return func(*args, **kwargs)
15
File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjangodbbackendsbasebase.py", line 294, in close
16
self._close()
17
File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagesdjongobase.py", line 208, in _close
18
if self.connection:
19
File "C:UsersDELLAppDataLocalProgramsPythonPython37libsite-packagespymongodatabase.py", line 829, in __bool__
20
raise NotImplementedError("Database objects do not implement truth "
21
NotImplementedError: Database objects do not implement truth value testing or bool(). Please compare with None instead: database is not None
22
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.