2011-05-22 8 views
19

Tratando de conseguir un módulo oauth a trabajar me hizo el favor de mover de: manage.py reset sites¿Cómo arreglar la tabla django_sites?

Esto tuvo el efecto de matar a la funcionalidad de administración y de inicio de sesión de mi sitio web.

Entonces, mi pregunta es cómo volver al punto de partida y arreglar lo que rompí.

Aquí está mi error de corriente cuando se trata de mostrar la herramienta de administración:

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

Miré la documentación, pero estoy perdido y cansado en ella: http://docs.djangoproject.com/en/1.3/ref/contrib/sites/

que parecía indicar: manage.py syncdb

tanto, me pregunto qué hacer a continuación ...

+1

"Hice el pro-movimiento ..." Oh hombre que me dio una buena carcajada. De todos modos, de alguna manera llegué al mismo punto que tú, pero en mi caso cerrándome ... – eggonlegs

+0

Problema relacionado: busca en tu archivo de configuración 'SITE_ID', este error podría indicar que alguien acaba de establecer eso en el valor incorrecto. (Al igual que si se queja de que no existe ningún sitio con 'pk'> 1,' SITE_ID' ya no es el valor predeterminado, y puede indicar un problema simple como este.) Sé que esto no responde a su problema anterior, pero podría ser relevante para futuros buscadores. – hangtwenty

Respuesta

56

Usted realmente no necesita el sites marco si sólo se ejecuta un sitio del proyecto, por lo que la solución más sencilla sería la de eliminar el siguiente artículo de su INSTALLED_APPS y el error debería desaparecer:

'django.contrib.sites' 

Usted puede también volver a crear el Site objeto que falta de la cáscara. Ejecute python manage.py shell y luego:

from django.contrib.sites.models import Site 
Site.objects.create(pk=1, domain='mdev.5buckchuck.com', name='5buckchuck.com') 
+2

Muchas gracias, estoy usando el paquete django-allauth y es súper sensible a él, así que tuve que volver. Muchisimas gracias. – bmartinek

+1

Esto funcionó para mí, pero no tengo idea de por qué fue necesario. ¿Alguna idea de por qué el sitio no se creó para empezar? –

+0

Hola, me encuentro con el mismo problema cuando hago un "sudo rb-site install /var/www/rb.myexample.com". El error es get: "django.contrib.sites.models.DoesNotExist: la consulta de coincidencia del sitio no existe". ¿Dónde está INSTALLED_APPS? Me gustaría eliminar la línea como sugirió e intentarlo de nuevo. ¡Gracias! – user1164061

1

Pasé por este problema también, mientras jugaba con django-allauth. La aplicación ofrece la posibilidad de eliminar sitios. Si elimina el designado por el parámetro SITE_ID en settings.py, tendrá que señalar el PK correcto de otro sitio válido.

Si eliminó el sitio predeterminado example.com (los cambios se realizan después de agregar otro sitio), simplemente puede seleccionar el otro sitio que creó al establecer SITE_ID en 2, por ejemplo. Si trabaja con una base de datos SQL, busque la tabla django_site y ubique la ID del sitio con la que desea trabajar.

De esta manera, no es necesario entrar en shell y volver a crear un sitio no necesario.

8

Proporcione SITE_ID = 1 en settings.py. Esto funcionará

+1

Eso funcionó. Muchas gracias – pyetti

+0

ovaciones @pyetti !! –

+0

A veces, si agrega más Sitios a través del Administrador y elimina algunos de ellos, cada sitio tiene una ID, no me funcionó una vez que cambié la ID en el DB que comenzó a funcionar, así que asegúrese de que SITE_ID coincida con la ID en la base de datos. Eso solucionado para mí. – Radek

Cuestiones relacionadas