Ошибка соединения 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), он работал нормально, хотя я считаю, что это не будет работать на другой машине, кроме моей собственной.

Любая помощь приветствуется!

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