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

Питон нуб, так как в этом мой первый проект, так что извините за незнакомость.

Сайт работал очень хорошо, пока я не нажал "Выйти" в моем приложении. После этого веб-сайт выдаст мне эту ошибку: не существует ли в / логин / запрос соответствия сайта не существует.

Я искал везде, и единственное решение, которое я получаю, касается настройки структуры сайта, 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).

Добавьте SITE_ID = 1 в settings.py в вашем проекте django

Я вижу ответы для создания нового сайта и ссылочный идентификатор для этого. Но если у вас уже есть сайт или вы каким-то образом удалили его и снова создали из пользовательского интерфейса, идентификатор будет увеличиваться. Чтобы решить эту проблему, вы можете получить идентификатор следующим образом -

Чтобы получить идентификатор, который вы можете сделать -

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

Кажется , вам нужно добавить SITE_ID=1 в settings.py

Я получил ту же ошибку, когда создавал карту сайта для проекта. Я включил это в список Installed_APP вsetting.pyфайл. Удалив'django.contrib.sites'из списка установленных_приложений ошибка удаляется.

убедитесь, что вы добавили идентификатор сайта, ниже приведен пример:

SITE_ID = 1

Другие вопросы по тегам