Настройки 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 сервера, но любое решение работает. Другие подобные вопросы не решают мою проблему.