Недостаточно значений для распаковки ошибки только в производстве

Недавно я запустил свое приложение на Heroku. Когда я запускаю приложение локально, оно работает нормально, и я не получаю никаких ошибок. Для контекста, я недавно переключил свою базу данных с sqlite на PostgreSQL. Когда я запускаю приложение на Heroku, я получаю следующую ошибку ValueError. Что может быть причиной того, что эта ошибка возникает только в продакшене, а не локально?

Traceback

Environment:


Request Method: POST
Request URL: https://myurl.herokuapp.com/

Django Version: 3.2.10
Python Version: 3.9.9
Installed Applications:
['PRIIIME_Travel.apps.PriiimeTravelConfig',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles']
Installed Middleware:
('whitenoise.middleware.WhiteNoiseMiddleware',
 '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')



Traceback (most recent call last):
  File "/app/.heroku/python/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/app/.heroku/python/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/app/PRIIIME_Travel/views.py", line 132, in get_ranking
    result1, result2, result3, result4, result5 = first_5_results_list

Exception Type: ValueError at /
Exception Value: not enough values to unpack (expected 5, got 0)

views.py

Похоже, что у вас нет ни одного города в новой базе данных. В вашем коде вы перебираете все города, будьте внимательны, код не сработает в любом случае, если у вас нет ровно 5 городов в базе данных. Вы можете взять только первые пять записей таблицы: City.objects.all()[:5].values_list('city', flat=True) Это решит проблему в случае, если у вас больше 5 городов.

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