2010-04-15 4 views
1

Petite histoire: Je suis bloqué hors de mon application Django lorsque le débogage est défini sur Faux.Je ne parviens pas à me connecter à mon application Django lorsque le débogage est défini sur Faux

longue histoire:

Cas 1 (la première fois il est arrivé):

  1. -je entrer mes informations de connexion, mais il redirige juste la page de connexion.
  2. je redémarre le serveur, essayez de vous connecter, et il fonctionne très bien, je suis dans.
  3. quelques heures plus tard, je reviens, connectez-vous, essayez de revenir vous connecter et je ne peux pas. Il redirige simplement vers la page de connexion.

Cas n ° 2 (je savoir comment provoquer l'échec de connexion):

  1. je redémarrer le serveur et je suis capable de se connecter au site.
  2. Je me connecte et je me déconnecte plusieurs fois, tout va bien.
  3. Je vais à une page inexistante et obtenir une erreur de serveur.
  4. Je me déconnecte et j'essaie de me reconnecter, et je ne peux pas, je suis redirigé vers la page de connexion.

Cas n ° 3 (je ne peux pas provoquer l'échec de connexion avec débogage définie sur True): 1. Je redémarrer le serveur et je suis capable de se connecter au site. 2. Je me connecte et je me déconnecte plusieurs fois, tout va bien. 3. Je vais sur une page inexistante et obtiens un retraçage. 4. Je me déconnecte et je me reconnecte, tout fonctionne. 5. J'attends et je joue avec et je n'arrive pas à faire échouer la connexion en mode débogage.

Aidez s'il vous plaît!

+0

Si 'DEBUG' est défini sur' True', Django retournera un 'technical_404_response' avec traceback. Sinon, il va essayer d'appeler votre fonction de rappel 'resolve404'. Donc, c'est probablement là que vous devriez nous donner plus de détails. – satoru

+0

Description d'erreur épique, mais totalement inutile ... Si le problème ne se produit vraiment pas avec 'DEBUG = True', alors cherchez les paramètres spécifiques que vous avez faits. Par exemple, j'ai "SESSION_COOKIE_SECURE = pas DEBUG" dans mes paramètres de site, ce qui signifie que je ne peux me connecter au serveur de production via HTTPS, et pas via HTTP. Je recommande d'utiliser [sentry] (https://github.com/dcramer/django-sentry) pour voir les erreurs qui se produisent dans le cas 'DEBUG = False' (sauf si vous ne pouvez pas vous connecter à sentry, soit: D). – AndiDog

Répondre

1

Avez-vous configuré un gestionnaire d'erreur 500 personnalisé? Est-ce que ça fait quelque chose de bizarre avec la session, peut-être?

+0

Ceci l'a arrangé pour moi. – fmorency

0

Je suppose que cela est lié à des erreurs dans les classes d'administration nécessitant le redémarrage du serveur devserver pour continuer. Comme rien n'est signalé, j'essaierais de supprimer toutes vos définitions admin.py et d'utiliser simplement admin.site.register (SomeModel) de base pour tout voir et voir si cela se produit encore, puis de les rajouter jusqu'à ce que -se produit.

1

J'avais le même problème. Voici ce que je l'ai fait pour y remédier:

j'ai réalisé la session cookie a été sauvé deux fois ... Je ne sais pas pourquoi, mais après de nombreux changements finally faire fonctionner ... il suffit de définir

SESSION_SAVE_EVERY_REQUEST = True 
SESSION_COOKIE_NAME = 'something' 

et c'est tout.

0

Assurez-vous que les importations de fichiers urls.pyde tout de django.conf.urls.defaults.

Vous avez peut-être explicitement certaines méthodes importées telles que des motifs et inclure (comme je l'ai fait pour combattre « l'importation sauvage » de PyDev messages d'avertissement). Par conséquent, les instructions cruciales qui affectent les gestionnaires par défaut de Django aux codes d'erreur HTTP 404 et 500 seront omises. Ceci est évidemment indésirable et conduit au comportement impair décrit dans la question.

Questions connexes