2011-08-05 24 views
5

yo estaba trabajando en mi proyecto por un tiempo y recientemente notado que cuando intento ir a localhost/admin/que da hacia fuera un error:Admin login dejó de funcionar Django

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 

Por lo general, cuando voy allí me hace iniciar sesión primero y luego me redirecciona, pero ahora solo comete errores a menos que ya esté conectado

Solo puedo ingresar a mi administrador después de iniciar sesión como administrador en la funcionalidad de inicio de sesión local que creé para los usuarios y luego ir a esa página . También el cierre de sesión de la página de administración dejó de funcionar dando el mismo error.

Estaba trabajando en agregar un nuevo campo al módulo de usuario y mostrar el nuevo formulario de creación de usuario cuando esto sucedió.

¿alguien tuvo un problema similar? O tal vez alguien sabe lo que está causando esto?

+0

depuración establecido Tal vez = True en su settings.py para que podamos ver algunos detalles .. –

Respuesta

11

Echa un vistazo a este thread, parece relevante.

Desde el último mensaje:

Desde la excepción dijo "coincidencia de consultas 'Sitio' no existe", y los documentos dijo algo sobre el SITE_ID describir el sitio en la tabla de base de datos django_site, que siguió adelante y echó un vistazo a mi base de datos (sqlite). La tabla django_site estaba vacía, así que agregué una fila con id == 1 (la misma que tengo en settings.py) y luego funcionó.

Si no le importa perder sus datos, puede intentar ejecutar 'sql appname', ya que se suponía que esta tabla debía generarse automáticamente.

+0

¡En realidad, sí! Ese fue el problema. Hice una identificación de sitio diferente porque quería que la información del sitio se envíe al usuario cuando restablece su contraseña. ¡Por alguna razón, cuando Site_id = 2 no funciona, pero site_id = 1 lo hace! Gracias :) – Angie

+4

En caso de que otros se encuentren con esto, recibí el mismo error después de eliminar "example.com" de la lista de sitios. Me tomó un tiempo encontrar la fuente porque mi sesión de inicio de sesión todavía estaba activa. Los comentarios de django.contrib.sites en INSTALLED_APPS resolvieron esto. –

+0

@JosephMornin También recibí este problema debido a la eliminación de example.com. Sin embargo, otra solución (si necesita mantener la aplicación de sesión) es abrir un shell de Django y crear un nuevo sitio y guardarlo, luego cambie el SITE_ID en settings.py para que sea el ID del sitio que acaba de crear. De esta manera, aún puede usar la aplicación de sitios si es necesario. – hangtwenty

8

Pruebe comentando o eliminando 'django.contrib.sites' de la configuración INSTALLED_APPS en su settings.py, eso debería resolver el problema.

También puede comprobar su mesa sitios:

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

Y si no hay sitio definido para localhost, puede crear o volver a crear que:

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

que funcionó para mi.

1

para cualquiera que trate de instalar Django-allauth de Django 1.8 o superior y conseguir de este error después de seguir las instrucciones aquí:

http://django-allauth.readthedocs.org/en/latest/installation.html

Apenas añada la siguiente línea a urls.py:

from django.contrib.sites.models import Site 

Espero que esto le ahorre tiempo a alguien.

0

INSTALLED_APPS = [ .... 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', ....bla bla bla ] SITE_ID = 1

intentar añadir SITE_ID = 1 ..es trabajó para mí