Подтвердить что ты не робот

Запрос соответствия сайта не существует

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.
}

}

4b9b3361

Ответ 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