Запрос соответствия сайта не существует
Питон нуб, так как в этом мой первый проект, так что извините за незнакомость.
Сайт работал очень хорошо, пока я не нажал "Выйти" в моем приложении. После этого веб-сайт выдаст мне эту ошибку: не существует ли в / логин / запрос соответствия сайта не существует.
Я искал везде, и единственное решение, которое я получаю, касается настройки структуры сайта, SITE_ID и т. Д. Я думаю, что эти элементы на моем компьютере в порядке, но я не могу найти пошаговое руководство / руководство, чтобы помочь мне проверить их.
Может кто-нибудь сказать мне, в чем проблема и как ее исправить? Заранее спасибо: 3
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': '/home/dotcloud/nhs.db', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
9 ответов
Если у вас нет сайта, определенного в вашей базе данных, и django хочет сослаться на него, вам нужно будет создать его.
Из python manage.py shell
:
from django.contrib.sites.models import Site
new_site = Site.objects.create(domain='foo.com', name='foo.com')
print (new_site.id)
Теперь установите идентификатор этого сайта в settings.py на SITE_ID
Таблица django_site
должен содержать строку с тем же значением, что и id
(по умолчанию равно 1
), как SITE_ID
установлен на (внутри вашего settings.py
).
Я вижу ответы для создания нового сайта и ссылочный идентификатор для этого. Но если у вас уже есть сайт или вы каким-то образом удалили его и снова создали из пользовательского интерфейса, идентификатор будет увеличиваться. Чтобы решить эту проблему, вы можете получить идентификатор следующим образом -
Чтобы получить идентификатор, который вы можете сделать -
python manage.py shell
from django.contrib.sites.models import Site
print Site.objects.get(name='example.com').id
Получить идентификатор, в который вы попали сюда setting.py
, Например.
SITE_ID = 8
В основном ID в таблице, соответствующей вашему туристическому сайту, и в settings.py должен совпадать.
Я исправил это без использования Python manage.py
ракушка
Сначала я попытался использовать команды выше, используя manage.py
ракушка:
from django.contrib.sites.models import Site
new_site = Site.objects.create(domain='foo.com', name='foo.com')
print new_site.id
Но это выдало ОШИБКУ ЦЕЛОСТНОСТИ
Краткий ответ добавить SITE_ID = 1
на ваш settings.py
Если вы хотите узнать, каков идентификатор вашего сайта, а затем перейти к фактической базе данных, я скачал sqliteman, чтобы увидеть, что было в моей таблице. Таким образом, любой идентификатор сайта, который у вас есть в таблице, назначается SITE_ID
Это потому что есть функция get_current
что идет в поисках SITE_ID
и он не находит его в вашем settings.py
tables
-django_site
--Columns
---id
он должен иметь идентификатор 1, имя как example.com, домен как example.com
Надеюсь, это хороший ответ и помогает
Запросите идентификатор в таблицах django_site в вашей базе данных и установите правильный в своем файле settings.py, например: Django: SITE_ID = 3
Я получил ту же ошибку, когда создавал карту сайта для проекта. Я включил это в список Installed_APP вsetting.py
файл. Удалив'django.contrib.sites'
из списка установленных_приложений ошибка удаляется.
убедитесь, что вы добавили идентификатор сайта, ниже приведен пример:
SITE_ID = 1