Логин администратора перестал работать Django - PullRequest
5 голосов
/ 05 августа 2011

Я некоторое время работал над своим проектом и недавно заметил, что когда я пытаюсь зайти в localhost / admin /, выдается ошибка:

DoesNotExist at /admin/

Site matching query does not exist.

Request Method:     GET
Request URL:    http://127.0.0.1:8000/admin/
Django Version:     1.3
Exception Type:     DoesNotExist
Exception Value:    

Site matching query does not exist.

Exception Location:     C:\Python27\lib\site-packages\django\db\models\query.py in get, line 349

Обычно, когда я туда захожу, сначала я вхожу в систему, а затем перенаправляет меня, но теперь это просто ошибки, если я уже не вошел в систему

Я могу войти в свой администратор только после того, как войдите в систему как администратор в функции локального входа в систему, которую я создал для пользователей, и затем перейду на эту страницу. Также прекратил работу выход со страницы администратора, выдававший ту же ошибку.

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

У кого-нибудь была похожая проблема? Или, может быть, кто-то знает, что вызвало это?

Ответы [ 4 ]

11 голосов
/ 05 августа 2011

Проверьте эту ветку , это кажется уместным.

Из последнего сообщения:

Поскольку исключение говорит "Соответствующий запрос" сайта "не соответствуетсуществовать ", и в документах что-то говорилось о SITE_ID, описывающем сайт в таблице базы данных django_site, я пошел дальше и взглянул на свою (sqlite) базу данных.Таблица django_site была пустой, поэтому я добавил строку с id == 1 (то же, что у меня в settings.py), и тогда она сработала.

Если вы не возражаете против потери ваших данных, вы можете попробовать запустить «sql appname», так как эта таблица должна была быть построена автоматически.

9 голосов
/ 26 июня 2012

Попробуйте комментировать или удалить 'django.contrib.sites' из параметра INSTALLED_APPS в файле settings.py, что должно решить проблему.

Вы также можете проверить таблицу своих сайтов:

python manage.py shell
from django.contrib.sites.models import Site
Site.objects.all()

И если для localhost не определен сайт, вы можете создать его или пересоздать it:

Site.objects.create(pk=1, domain='127.0.0.1:8000', name='localhost')

Это сработало для меня.

1 голос
/ 15 декабря 2015

Для тех, кто пытается установить django-allauth для django 1.8 или выше и получает эту ошибку после следования инструкциям здесь:

http://django -allauth.readthedocs.org / ен / последний / installation.html

Просто добавьте следующую строку в urls.py:

from django.contrib.sites.models import Site

Надеюсь, это сэкономит кому-то время.

0 голосов
/ 17 марта 2016

INSTALLED_APPS = [ .... 'django.contrib.sites', 'Allauth', 'Allauth.account', 'Allauth.socialaccount', .... бла бла бла ] SITE_ID = 1

попробуйте добавить SITE_ID = 1 ... у меня сработало

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...