Настройки Mongodb django

У меня есть проект django, который на локальном сервере работает нормально. Я развертываю на удаленном сервере, но mongodb, похоже, не работает, потому что у меня есть этот частичный трассировщик:

djongo.exceptions.SQLDecodeError: 

        Keyword: FAILED SQL: SELECT "station"."station_name", "station"."id_station" FROM "station"
Params: ()
Pymongo error: OrderedDict([('ok', 0.0), ('errmsg', 'command find requires authentication'), ('code', 13), ('codeName', 'Unauthorized')])
Version: 1.3.6
        Sub SQL: None
        FAILED SQL: None
        Params: None
        Version: None

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

Traceback (most recent call last):
  File "/home/kafka/anaconda3/envs/djangocrops/lib/python3.9/site-packages/django/db/utils.py", line 97, in inner
    return func(*args, **kwargs)
  File "/home/kafka/anaconda3/envs/djangocrops/lib/python3.9/site-packages/djongo/cursor.py", line 70, in fetchmany
    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/kafka/anaconda3/envs/djangocrops/lib/python3.9/threading.py", line 973, in _bootstrap_inner
    self.run()
  File "/home/kafka/anaconda3/envs/djangocrops/lib/python3.9/threading.py", line 910, in run

Я установил свой mongodb (на сервере, на котором он работает локально) в настройках и в файле utils.py:

Настройки djangoDB:

DATABASES = {
'default': {
    'ENGINE' : 'djongo',
    'NAME' : 'meteodata',
    'HOST': '127.0.0.1', #localhost',
    'PORT': 27017,
    'USERNAME': 'admin',
    'PASSWORD': 'mypwd',
    'MONGO_URI': "mongodb://admin:mypwd@127.0.0.127017/meteodata"
    }
}

utils.py

from pymongo import MongoClient
import pymongo

def get_db_handle(db_name, host, port, username, password): #, username, password):
    client = MongoClient(host=host,
                         port=int(port),
                         username=username,
                         password=password,
                         authSource="admin",
                        )# localhost 27017
    print('client', client)
    db_handle = client[db_name]
    return db_handle, client

def get_collection_handle(db_handle, collection_name):
    return db_handle[collection_name]

client = get_db_handle('meteodata', '127.0.0.1', 27017, 'admin', 'mypwd')[1]

collection = client.meteodata

Я использую в качестве хоста localhost, ip сервера, но любое решение работает. Другие подобные вопросы не решают мою проблему.

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