Site de requête correspondante n'existe pas
Python noob, comme c'est mon premier projet, donc excuse mon ignorance.
Le site fonctionnait très bien jusqu'à ce que je clique sur le bouton "déconnexion" dans mon application. Après cela, le site web donne-moi de cette erreur:
DoesNotExist à /login/
Site de requête correspondante n'existe pas.
J'ai cherché partout, et la seule solution que je reçois trait à la mise en place de l'architecture du site, SITE_ID, etc. Je pense que ces articles sur mon ordinateur sont beaux, mais je ne peux pas trouver une soluce/guide pour m'aider à vérifier sur eux.
Quelqu'un peut me dire quel est le problème et comment le résoudre? Merci d'avance :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.
}
}
- Êtes-vous en mesure de vous connecter à l'admin du site ? il semble que votre django_site de la table est vide. vous avez besoin d'au moins une entrée là-bas
- Non, je ne peux pas me connecter à l'admin du site. Il me donne le même message d'erreur dans /admin/
Vous devez vous connecter pour publier un commentaire.
Si vous n'avez pas de site définis dans votre base de données et django veut de référence, vous devrez en créer un.
À partir d'un
python manage.py shell
:Maintenant jeu de ID de site dans votre settings.py pour SITE_ID
manage.py
dans votre répertoire courantsyncdb
? Il me semble que vous venez de copier ce projet et a commencé à essayer de l'utiliser?/home/dotcloud/nhs.db
est accessible localement comme un chemin d'accès valide? C'est l'emplacement physique il veut créer la base de données sqlite3. C'est un UNIX chemin, mais vous êtes l'exécution de ce sous un "C:" invite de commandeSite.objects.create
autres que directement à partir de la gestion de la coque? Il semble étrange que ce n'est pas documentée de manière claire, il est cependant indispensable à la mise en place "des sites de cadre".Table
django_site
doit contenir une ligne avec la même valeur queid
(par défaut égal à1
), commeSITE_ID
est fixée (à l'intérieur de votresettings.py
).Ajouter SITE_ID = 1 à settings.py dans votre projet django
Je fixe sans l'aide de python
manage.py
shellJ'ai d'abord essayé en utilisant les commandes ci-dessus en utilisant
manage.py
shell:Mais il a donné une ERREUR d'INTÉGRITÉ
La réponse courte est d'ajouter
SITE_ID = 1
à votresettings.py
Si vous voulez savoir ce que votre site id est, ensuite, allez dans la base de données réelle, j'ai téléchargé sqliteman pour voir ce que ma table. Donc quel que soit le site d'id que vous avez dans le tableau est ce qui est attribué à
SITE_ID
C'est parce qu'il n'y est une fonction
get_current
qui va à la recherche deSITE_ID
et il ne le trouve pas dans votresettings.py
il devrait avoir l'id "1", " nom que
example.com
, un domaine queexample.com
Je vois des réponses à créer un nouveau site qui référence id pour que. Mais si vous disposez déjà d'un site ou d'une certaine manière vous avez supprimé et a créé le site à nouveau à partir de l'INTERFACE utilisateur, puis l'id continue à s'incrémenter. Pour résoudre ce problème, vous pouvez obtenir le code comme suit:
Obtenir l'id que vous obtenez ici dans
setting.py
. Par exemple.Fondamentalement ID de la table correspondant yo site de visite et dans la settings.py doivent correspondre.
Requête de l'ID dans votre base de données django_site tables et définir le droit dans votre Django settings.py par exemple:
SITE_ID = 3