2017-08-03 1 views
0

J'ai récemment travaillé sur un projet qui avait une application nommée 'catalogue'. Pendant que je travaillais dessus, j'ai changé l'URLconf pour que l'URL racine puisse être redirigée vers l'application.Comment empêcher les paramètres URLconf d'être transmis à un nouveau projet?

j'ai écrit le code ci-dessous pour ce faire:

# within the project's URLconf file 

from django.views.generic import RedirectView 
urlpatterns += [ 
    url(r'^$', RedirectView.as_view(url='/catalog/', permanent=True)), 
] 

je travaillais sur le serveur de développement local, et l'URL racine (127.0.0.1:8000) a été réorienté avec succès à l'application « catalogue » (127.0.0.1:8000/catalog/).

Cependant, lorsque j'ai créé un nouveau projet, l'URL racine de ce NOUVEAU projet a également essayé de rediriger vers l'application 'catalogue' du projet précédent. Alors où je devrais voir le "ça a marché!" page à l'URL racine du nouveau projet, je suis plutôt redirigé vers l'URL de l'application 'catalogue' du projet précédent, où la page 404 est affichée (évidemment, car l'application 'catalogue' ne fait pas partie du nouveau projet).

Au lieu de cela: It Worked Page

Voyant cela: 404 Page

Il me semble que les paramètres du projet précédent ont en quelque sorte affecté le serveur local de façon permanente afin que le réglage URLConf modifié est porté sur à tous les projets ultérieurs.

Je ne pouvais pas trouver exactement ce qui a été l'origine de ce problème, donc je viens de rencontrer le nouveau projet sur un autre port (8001) en utilisant le

python manage.py runserver 8001 
commande

, et cela semble résoudre le problème. Cependant, je ne considère cela que comme une solution temporaire et je veux trouver la cause profonde du problème. Si je ne peux pas le réparer, je voudrais "réinitialiser" le port par défaut (8000) afin que tout revienne aux paramètres par défaut. Existe-t-il un moyen de "réinitialiser" complètement le serveur local ou le django lui-même afin que tous les paramètres reviennent à la façon dont ils ont été libérés?

+1

Courez-vous des projets de bot en même temps ? Si c'est le cas, vous devriez les exécuter sur différents ports. –

+0

La redirection permanente n'est pas stockée par Django, elle est mise en cache par votre navigateur. Vous devez vider le cache de votre navigateur pour arrêter la redirection. Êtes-vous sûr de vouloir une redirection permanente? Vous pouvez effacer le cache de votre navigateur pour le moment, mais une fois votre site déployé, vous ne pourrez plus vider le cache de votre visiteur si vous changez d'avis à propos de la redirection. – Alasdair

Répondre

0

Dans le nouveau projet dont vous avez besoin URL complète de votre premier projet, par exemple:

urlpatterns += [ 
    url(r'^$', RedirectView.as_view(url='http://localhost:8000/catalog/', permanent=True)), 
] 

parce que votre nouveau projet n'a pas url /catalog/ il vous obtenez 404