1

I created my first with MongoDB with Django while during the setup I am getting this problem error

Internal Server Error: /api/v1/device/
Traceback (most recent call last):
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/djongo/sql2mongo/query.py", line 856, in parse
    return handler(self, statement)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/djongo/sql2mongo/query.py", line 928, in _insert
    query.execute()
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/djongo/sql2mongo/query.py", line 397, in execute
    res = self.db[self.left_table].insert_many(docs, ordered=False)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/pymongo/collection.py", line 761, in insert_many
    blk.execute(write_concern, session=session)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/pymongo/bulk.py", line 528, in execute
    return self.execute_command(generator, write_concern, session)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/pymongo/bulk.py", line 363, in execute_command
    _raise_bulk_write_error(full_result)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/pymongo/bulk.py", line 140, in _raise_bulk_write_error
    raise BulkWriteError(full_result)
pymongo.errors.BulkWriteError: batch op errors occurred, full error: {'writeErrors': [{'index': 0, 'code': 11000, 'errmsg': 'E11000 duplicate key error collection: farmos.device index: __primary_key__ dup key: { id: null }', 'keyPattern': {'id': 1}, 'keyValue': {'id': None}, 'op': {'device_id': 2, 'device_name': None, 'device_status': 'new', 'device_actions': True, 'device_token': True, '_id': ObjectId('63182c4ee9afd58ca7855029')}}], 'writeConcernErrors': [], 'nInserted': 0, 'nUpserted': 0, 'nMatched': 0, 'nModified': 0, 'nRemoved': 0, 'upserted': []}

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/djongo/cursor.py", line 56, in execute
    params)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/djongo/sql2mongo/query.py", line 783, in __init__
    self._query = self.parse()
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/djongo/sql2mongo/query.py", line 868, in parse
    raise exe from e
djongo.exceptions.SQLDecodeError: 

    Keyword: None
    Sub SQL: None
    FAILED SQL: INSERT INTO "device" ("device_id", "device_name", "device_status", "device_actions", "device_token") VALUES (%(0)s, %(1)s, %(2)s, %(3)s, %(4)s)
    Params: [2, None, 'new', True, True]
    Version: 1.3.3

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/djongo/cursor.py", line 59, in execute
    raise db_exe from e
djongo.database.DatabaseError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/rest_framework/viewsets.py", line 125, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/rest_framework/views.py", line 509, in dispatch
    response = self.handle_exception(exc)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/rest_framework/views.py", line 469, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
    raise exc
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/rest_framework/views.py", line 506, in dispatch
    response = handler(request, *args, **kwargs)
  File "/home/adarsh/farmos/farmos/persistance_layer/mongodb/device_operations.py", line 22, in create
    serializer_user.save()
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/rest_framework/serializers.py", line 212, in save
    self.instance = self.create(validated_data)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/rest_framework/serializers.py", line 962, in create
    instance = ModelClass._default_manager.create(**validated_data)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/models/query.py", line 433, in create
    obj.save(force_insert=True, using=self.db)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/models/base.py", line 746, in save
    force_update=force_update, update_fields=update_fields)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/models/base.py", line 784, in save_base
    force_update, using, update_fields,
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/models/base.py", line 887, in _save_table
    results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/models/base.py", line 926, in _do_insert
    using=using, raw=raw,
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/models/query.py", line 1204, in _insert
    return query.get_compiler(using=using).execute_sql(returning_fields)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1391, in execute_sql
    cursor.execute(sql, params)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 100, in execute
    return super().execute(sql, params)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 68, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
  File "/home/adarsh/farmos/venv/lib/python3.6/site-packages/djongo/cursor.py", line 59, in execute
    raise db_exe from e
django.db.utils.DatabaseError

directory-path

farmos
      /device -> model,view,serializer
      /farm -> model,view,serializer
      /persistances_layer -> model,view,serializer
      /farmos -> settings.py, urls.py, utils.py

here Is my settings.py file please let m know if there is any mistake that I am making here

"""
Django settings for farmos project.

Generated by 'django-admin startproject' using Django 3.2.4.

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-v-iu2x3pd&m0qap1k%y=8jua12v$adi*r132uha%&jdsp781(&'

# 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',
    'rest_framework',
    'rest_framework.authtoken',
    'device.apps.DeviceConfig',
    'farm.apps.FarmConfig',
    'persistance_layer.apps.PersistanceLayerConfig'
]

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 = 'farmos.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 = 'farmos.wsgi.application'


# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases

DATABASES = {
          'default': {
              'ENGINE': 'djongo',
              'NAME': 'farmos',
              'CLIENT': {
                  'host': 'mongodb://srv13.absolute.ag:27017',
                  # 'username': 'user1',
                  # 'password': 'pass1',
                  # 'authSource': 'admin1',
                  # 'authMechanism': 'SCRAM-SHA-1',
                }
        }
    }

# 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',
    },
]

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
        # 'rest_framework.authentication.SessionAuthentication',
    ],

    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticated',
    ],

    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    'COERCE_DECIMAL_TO_STRING': False,
    # 'EXCEPTION_HANDLER': 'farmos.utils.custom_exception_handler',
}

# 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'

here is the requirement.txt file packages that i am using

weasyprint~=52.5

boto3==1.10.41

django-3-jet==1.0.7

Django==3.2.4

django-cors-headers==3.7.0

django-extensions==2.2.3

django-filter==2.4.0

django-import-export==2.5.0 django-localflavor==2.2

django-phonenumber-field==3.0.1

django-rest-auth==0.9.5

django-simple-history==3.0.0

django-storages==1.8

djangorestframework==3.12.4

mysqlclient==2.0.3

phonenumbers==8.10.20

Pillow==8.2.0

requests==2.23.0

django-import-export==2.5.0

django-google-maps==0.12.4

drf-yasg==1.20.0

Flask==2.0.1

pandas==1.1.5

beautifulsoup4==4.9.3

slugify==0.0.1

django-taggit==1.3.0

PyMySQL==1.0.2

django-crontab==0.7.1

Werkzeug==2.0.2

numpy

python-dateutil==2.7.3

pytest==6.2.5

pytz==2019.3

jmespath==0.10.0

docutils==0.15.2

lxml==4.7.1

cffi==1.15.0

future==0.18.2

ipython==7.16.3

olefile==0.46

soupsieve==2.3.1

html5lib==1.1

httplib2==0.15.0

defusedxml==0.7.1

pip==21.3.1

keyring==18.0.1

PyYAML==5.3.1

Babel==2.9.1

botocore==1.13.50

s3transfer==0.2.1

MarkupSafe==2.0.1

Jinja2==3.0.3

click==8.0.3

blinker==1.4

itsdangerous==2.0.1

setuptools==45.2.0

sqlparse

asgiref==3.4.1

colorama==0.4.3

py==1.11.0

python-stdnum==1.17

tablib==3.1.0

xlrd==2.0.1

xlwt==1.3.0

MarkupPy==1.14

openpyxl==3.0.9

certifi==2019.11.28

chardet==3.0.4

itypes==1.2.0

coreapi==2.3.3

coreschema==0.0.4

uritemplate==4.1.1

cryptography==2.8

urllib3==1.25.8

simplejson==3.16.0

coverage==6.2

six==1.14.0

Pygments==2.10.0

inflection==0.5.1

idna==2.8

paramiko==2.6.0

pyparsing==3.0.6 google_api_python_client==2.42.0

oauth2client==4.1.3 ua-parser==0.10.0

user-agents==2.2.0

django-user-agents==0.4.0

django_db_logger

dataclasses==0.1

djongo==1.3.3

pymongo==3.11.2

djangotoolbox>=1.6.0

django-dbindexer>=1.6.0

gunicorn==19.9.0

django-crispy-forms==1.9.0

dnspython==1.16.0

4

1 Answer 1

0

For dealing with module named Djongo for connecting Django with MongoDb , one should be completely aware of the modules versions being used in the environment.

Make sure your using the library versions stated below.

asgiref==3.5.0,
Django==4.0.3,
djongo==1.3.6,
dnspython==2.2.1,
pykerberos==1.2.4, 
pymongo==3.12.1,
python-snappy==0.6.1, 
pytz==2022.1,
sqlparse==0.2.4, 

configure the Database settings in the settings.py. Its not necessary to use host while connnecting to the localhost of MongoDb.






      DATABASES = {
            'default': {
                'ENGINE': 'djongo',
                'NAME': 'your-db-name',
            
            }
    } 

Sign up to request clarification or add additional context in comments.

2 Comments

still the error is same
Basically it takes a lot with the versions of the libraries present in the env. Make sure your python version is 3.7.2 or 3.7 and Django 4.0.3. If still there is no solution. We can connect some time so that I dive into your que for the solution.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.