Запрос соответствия сайта не существует
Python noob, так как в этом мой первый проект, поэтому извините мою незнакомость.
Сайт работал очень хорошо, пока я не нажал "выйти из системы" в своем приложении. После этого сайт даст мне эту ошибку:
DoesNotExist at/login/
Запрос соответствия сайта не существует.
Я искал всюду, и единственное решение, которое я получаю, связано с настройкой структуры сайта, 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.
}
}
Ответы
Ответ 1
Если у вас нет сайта, определенного в вашей базе данных, и 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
Ответ 2
Таблица django_site
должна содержать строку с тем же значением, что и id
(по умолчанию равно 1
), для которого SITE_ID
установлен (внутри вашего settings.py
).
Ответ 3
Я исправил это без использования python manage.py
shell
Сначала я попытался использовать команды выше с использованием команды 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
Ответ 4
Я вижу ответы, чтобы создать новый сайт и ссылочный идентификатор для этого. Но если у вас уже есть сайт или вы каким-то образом удалили и снова создали сайт из пользовательского интерфейса, то идентификатор продолжает увеличиваться. Чтобы решить эту проблему, вы можете получить идентификатор следующим образом:
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 должен совпадать.
Ответ 5
Добавьте SITE_ID = 1 в settings.py в вашем проекте django
Ответ 6
![enter image description here]()
Запросите идентификатор в таблицах django_site в вашей базе данных и установите правильный в своем файле settings.py, например: SITE_ID = 3