Как исправить таблицу django_sites?
Пытаясь получить модуль oauth
для работы, я сделал про-перемещение: manage.py reset sites
Это повлияло на убийство функций администратора и входа в систему моего сайта.
Итак, мой вопрос в том, как мне вернуться к квадрату и исправить то, что я сломал.
Вот моя текущая ошибка при попытке отобразить инструмент администратора:
DoesNotExist at /admin/
Site matching query does not exist.
Request Method: GET
Request URL: http://mdev.5buckchuck.com/admin/
Django Version: 1.3
Exception Type: DoesNotExist
Exception Value:
Site matching query does not exist.`
Я посмотрел документацию, но я потерялся и устал в ней:
http://docs.djangoproject.com/en/1.3/ref/contrib/sites/
Казалось, он указывает: manage.py syncdb
Итак, мне интересно, что делать дальше...
Ответы
Ответ 1
Вам действительно не нужна структура sites
, если вы запускаете только один сайт из проекта, поэтому самым простым решением было бы удалить следующий элемент из вашего INSTALLED_APPS
, и ошибка должна исчезнуть:
'django.contrib.sites'
Вы также можете повторно создать отсутствующий объект Site
из оболочки. Запустите python manage.py shell
, а затем:
from django.contrib.sites.models import Site
Site.objects.create(pk=1, domain='mdev.5buckchuck.com', name='5buckchuck.com')
Ответ 2
Введите SITE_ID = 1 в settings.py. Это будет работать.
Ответ 3
Я тоже прошел эту проблему, играя с django-allauth
. Приложение предлагает возможность удалять сайты. Если вы удалите значение, указанное параметром SITE_ID
в settings.py
, вам нужно указать правильный PK другого допустимого сайта.
Если вы удалили сайт по умолчанию example.com
(изменения были сделаны при очистке после добавления другого сайта), вы можете просто захотеть выбрать другой сайт, который вы создали, например, установив SITE_ID на 2. Если вы работаете с базой данных SQL, найдите таблицу django_site
и найдите идентификатор сайта, с которым вы хотите работать.
Таким образом, не нужно входить в оболочку и воссоздать ненужный нужный сайт.
Ответ 4
Если вам нужны сайты, вы можете использовать данные. Прочтите документы для подсказки позволяющие создать инфраструктуру сайтов.