with tutorial the espaƱol applications python django

python - tutorial - La consulta de coincidencia de sitios no existe



the django project (4)

La tabla django_site debe contener una fila con el mismo valor que id (por defecto es igual a 1 ), ya que SITE_ID está configurado como (dentro de su settings.py ).

Python noob, como en este es mi primer proyecto, así que disculpe mi falta de familiaridad.

El sitio funcionaba muy bien hasta que hice clic en "cerrar sesión" en mi aplicación. Después de eso, el sitio web me daría este error: DoesNotExist at / login / Site matching query no existe.

Busqué en todas partes y la única solución que obtengo se relaciona con la configuración del marco del sitio, SITE_ID, etc. Creo que esos elementos en mi computadora están bien, pero no puedo encontrar un tutorial / guía que me ayude a verificarlos.

¿Alguien puede decirme cuál es el problema y cómo solucionarlo? Gracias de antemano: 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. }

}


Lo arreglé sin usar el shell python manage.py

Primero intenté usar los comandos anteriores usando el shell manage.py :

from django.contrib.sites.models import Site new_site = Site.objects.create(domain=''foo.com'', name=''foo.com'') print new_site.id

Pero dio un ERROR DE INTEGRIDAD

La respuesta corta es agregar SITE_ID = 1 a su settings.py Si quiere saber cuál es su ID de sitio, entonces vaya a la base de datos real, descargué sqliteman para ver qué tenía mi tabla. Entonces, cualquier ID de sitio que tengas en la tabla es lo que se asigna a SITE_ID

Esto se debe a que hay una función get_current que busca SITE_ID y no la encuentra en su settings.py

tables -django_site --Columns ---id

debería tener id como 1, nombre como example.com, dominio como example.com

Con suerte, esta es una buena respuesta y ayuda


Si no tiene un sitio definido en su base de datos y django desea hacer referencia a él, tendrá que crear uno.

Desde un 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)

Ahora configure esa ID de sitio en su settings.py en SITE_ID


Veo respuestas para crear un sitio nuevo y una identificación de referencia para eso. Pero si ya tiene un sitio o de alguna manera lo borró y creó nuevamente el sitio desde la interfaz de usuario, la identificación sigue aumentando. Para resolver esto, puede obtener la identificación de la siguiente manera:

Para obtener la identificación que puedes hacer,

python manage.py shell from django.contrib.sites.models import Site print Site.objects.get(name=''example.com'').id

Obtenga la ID que obtiene aquí en setting.py . P.ej.

SITE_ID = 8

Básicamente, la ID en la tabla correspondiente al sitio de la gira y en settings.py debe coincidir.