Невозможно войти на страницу администратора в производственном посте Heroku. - PullRequest
0 голосов
/ 10 ноября 2018

Это приложение работает локально с sqlite. Когда я запускаю его в производство с Heroku, я не собираюсь входить на страницу администратора. Это ошибка, которую я получаю от отладки:

Ошибка программирования в / admin / login / отношение "auth_user" не существует ЛИНИЯ 1: ... пользователь "." Is_active "," auth_user "." Date_joined "ОТ «AUTH_USER ...

Я думаю, что я добавил правильную строку подключения DATABASE в settings.py (закомментировано), но это привело к той же ошибке. Я запустил pym manage.py makemigrations и мигрировал. Миграция дала такую ​​же ошибку. Я нашел связанные проблемы в стеке и GitHub, но ни один из них не работал. Большинство из них только что сказали, чтобы мигрировать. Есть идеи, что может быть причиной ошибки? ТИА

log (последний бит)

2018-11-10T02:04:25.402553+00:00 app[web.1]: django.db.utils.ProgrammingError: relation "auth_user" does not exist
2018-11-10T02:04:25.402555+00:00 app[web.1]: LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...
2018-11-10T02:04:25.402556+00:00 app[web.1]: ^
2018-11-10T02:04:25.402557+00:00 app[web.1]: 
2018-11-10T02:04:25.403555+00:00 app[web.1]: 10.99.134.157 - - [10/Nov/2018:02:04:25 +0000] "POST /admin/login/?next=/admin/ HTTP/1.1" 500 212013 

settings.py

import os
import warnings
from django.utils.translation import ugettext_lazy as _
from os.path import dirname
import django_heroku
import dj_database_url


BASE_DIR = dirname(dirname(dirname(dirname(os.path.abspath(__file__)))))
CONTENT_DIR = os.path.join(BASE_DIR, 'content')

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',

    # Vendor apps
    'bootstrap4',

    # Application apps
    'main',
    'accounts',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'app.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(CONTENT_DIR, 'templates'),
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# DATABASES = {
# 'default': {
#     'ENGINE': 'django.db.backends.postgresql',
#     'NAME': '<hide>',
#     'USER': '<hide>',
#     'PASSWORD': '<hide>',
#     'HOST': '<hide>',
#     'PORT': '<hide>',
# }

db_from_env = dj_database_url.config(conn_max_age=500, ssl_require=True)
DATABASES['default'].update(db_from_env)



AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


django_heroku.settings(locals())

views.py (там, где произошла ошибка)

class GuestOnlyView(View):
    def dispatch(self, request, *args, **kwargs):
        # Redirect to the index page if the user already authenticated
        if request.user.is_authenticated:
            return redirect(settings.LOGIN_REDIRECT_URL)

        return super().dispatch(request, *args, **kwargs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...