У меня действительно странная ситуация, которую я не могу понять. Я не касался своей реализации этого пакета с начала года, и теперь эта функциональность перестает существовать на моем живом сервере heroku. В настоящее время у меня есть форма «Создать учетную запись» в моем общедоступном арендаторе, которая генерирует арендатора / домен точно так же, как это делают документы, а django-tenants выполняет автоматическую генерацию схемы. Это работает правильно на моем локальном хосте и не имеет проблем. Однако на моем живом сервере я получаю сообщение об ошибке 404 ... Not Found...The requested URL / was not found on this server.
1006 *
У меня есть запись CNAME
на DNSimple, которая указывает на домен с подстановочными символами, который, кажется, работает, потому что у меня уже есть арендатор, который я недавно создал, который все еще полностью функционален (т. Е. some-customer.mydomain.com
). Я посмотрел на свою базу данных PSQL, прикрепленную к heroku, и все там, как должно быть, а также миграции, происходящие в журналах, когда я создаю учетную запись, которая генерирует арендатора.
1012 *
Я надеялся, что может быть какое-то понимание того, что я делаю / сделал неправильно, чтобы эта проблема возникла. Просто кажется странным, что ни один из моих теперь сгенерированных арендаторов не может быть доступен через их Domain
.
Редактировать: Почтовый индекс.
локальный файл .env
SECRET_KEY=...
DEBUG=True
DB_NAME=...
DB_USER=...
DB_PASSWORD=...
DB_HOST=localhost
ALLOWED_HOSTS=.localhost, .herokuapp.com
GOOGLE_RECAPTCHA_SECRET_KEY=...
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
AWS_STORAGE_BUCKET_NAME=...
SECURE_SSL_REDIRECT='False'
settings.py (включены вещи, которые я считаю относительными)
...
LOGIN_URL = 'login'
ALLOWED_HOSTS = config('ALLOWED_HOSTS', default=[], cast=Csv())
DEBUG = config('DEBUG', default=False, cast=bool)
SECRET_KEY = config('SECRET_KEY')
SHARED_APPS = (
'django_tenants',
'tenant',
'django.contrib.contenttypes',
'public.apps.PublicConfig',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.sessions',
'debug_toolbar',
'storages'
)
TENANT_APPS = (
'django.contrib.contenttypes',
'inventory.apps.InventoryConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.sessions',
'django.contrib.messages',
)
INSTALLED_APPS = list(SHARED_APPS) + [app for app in TENANT_APPS if app not in SHARED_APPS]
TENANT_MODEL = 'tenant.Client'
TENANT_DOMAIN_MODEL = 'tenant.Domain'
MIDDLEWARE = [
'django_tenants.middleware.main.TenantMainMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
]
ROOT_URLCONF = 'myapp.urls'
WSGI_APPLICATION = 'myapp.wsgi.application'
DATABASE_ROUTERS = (
'django_tenants.routers.TenantSyncRouter',
)
PUBLIC_SCHEMA_URLCONF = 'myapp.urls_public'
SECURE_SSL_REDIRECT = config('SECURE_SSL_REDIRECT', default=False, cast=bool)
...
настройки производства Heroku (включены относительные вещи)
...
ALLOWED_HOSTS: .herokuapp.com, .mydomain.com, mydomain.com
DEBUG: False
SECURE_SSL_REDIRECT: True
...
urls.py (каждый арендатор должен видеть это)
urlpatterns = [
...
url(r'^$', dashboard, name='dashboard'),
url(r'^login/$', login_view, name='login'),
url(r'^logout/$', logout_view, name='logout'),
...
]
urls_public.py (основной сайт)
urlpatterns = [
url(r'^$', home_view, name='home'),
url(r'^login/$', login_view, name='login'),
url(r'^logout/$', logout_view, name='logout'),
url(r'^create_account/$', create_account_view, name='create_account'),
]