Ошибка соединения Django + MongoDB после развертывания на Heroku
Я использую Django(djongo) + MongoDB Altas(pymongo).
Итак, я разработал это веб-приложение локально, где я использую метод Javascript's fetch для чтения и записи данных в MongoDB.
Код примера:
fetch("https://127.0.0.1:8000/api/fetchValues")
.then(response => response.json())
.then(data => {
//do something
Все прекрасно работает локально, но когда я развернул его на Heroku (и жестко закодировал часть 127.0.0.1:8000
с <appname>.heroku.com
), тот же метод fetch вернул [ ] вместо фактических значений, хранящихся в MongoDB, хотя я получил от него код 200 OK.
Мой settings.py
файл выглядит следующим образом:
DATABASES = {
'default': {
'ENGINE': 'djongo',
'CLIENT': {
'host': 'mongodb+srv://<username>:<pass>@cluster0.74bck.mongodb.net/myFirstDatabase?retryWrites=true&w=majority',
'authMechanism': 'SCRAM-SHA-1',
}
}
}
Я также использовал import django_heroku
и django_heroku.settings(locals())
сверху и снизу settings.py
соответственно.
Я мигрировал и с помощью python manage.py
, и с помощью heroku run python manage.py
(конечно, makemigrations/migrate).
Я считаю, что это связано с конфигурационными параметрами Heroku, в частности DATABASE_URL
, которые я не могу удалить/отредактировать. Я попробовал следующие шаги:
но ничего не помогло. Я также сделал свой собственный MONGODB_URI
config var, но без толку.
Забавный факт: когда я использовал приведенный выше метод выборки Javascript после развертывания на Heroku (но с 127.0.0.1:8000
), он работал нормально, хотя я считаю, что это не будет работать на другой машине, кроме моей собственной.
Любая помощь приветствуется!