Ok, makes sense. Thank you very much for the details Daniel. Doug On Sunday, January 21, 2018 at 1:02:33 PM UTC-7, Daniel Hepper wrote: > > Yes, kind of. There are two kinds of redirects, temporary and permanent > redirects. By default Django's redirect() method returns a temporary > redirect. If you pass permanent=True, it returns a permanent redirect. > > So here is what happened in your case: > > 1. You run the MDN tutorial project and point your browser to > http://127.0.0.1:8000/ > 2. The browser requests the path / from the server 127.0.0.1:8000 (the > runserver running the MDN tutorial project) and receives a permanent > redirect to /catalog/ > 3. Then you stop the MDN project and run your own project. > 4. You then point your browser to http://127.0.0.1:8000 > 5. Your browser thinks "wait a minute, last time I accessed the path / on > the server 127.0.0.1:8000, it returned a permanent redirect to /catalog/. > I'll save my user some time and just go directly to /catalog/". > > Now, if a URL returns a temporary redirect, the browser knows that this > redirect is, well, temporary, so it might point to a different location the > next time or there might be no redirect at all. Therefore, it must load the > original URL. > > In the example of the tutorial, a permanent redirect should not be used, > not only because it can lead to the problem you encountered. > > Imagine you use this software for your local library at > http://smalltownlibrary.com/. After a while, you want to add another > feature, e.g. a book shop under /shop/ where visitor can buy used books. > You then want to add a homepage at / where users can select whether they > want to access catalogue or the shop. It works fine for new users, but > everyone who accessed the site http://smalltownlibrary.com/ before is not > able to access the new homepage because their browser has cached the > permanent redirect to the catalog. > > Permanent redirects definitely have their place, e.g. if you moved your > website to a new URL and want to tell the search engines that they should > only look at the new URL. But you have to be aware that they are indeed > permanent. > > Hope that clarifies it a bit. > > Daniel > > On Sunday, January 21, 2018 at 7:26:39 PM UTC+1, Doug Nintzel wrote: >> >> That got it Daniel...thanks for the quick help. Was it " permanent=True" >> in particular that was the problem? >> Thanks again, >> Doug >> >> On Sunday, January 21, 2018 at 10:29:33 AM UTC-7, Daniel Hepper wrote: >>> >>> I realized that the Mozilla tutorial is a wiki, so I took the liberty to >>> remove the "permant=True" from the redirect. >>> >>> On Sun, Jan 21, 2018 at 6:23 PM, Daniel Hepper <[email protected]> >>> wrote: >>> >>>> It's not the new project referencing the old project, it is actually >>>> your browser caching the redirect from http://127.0.0.1:8000/ to >>>> http://127.0.0.1:8000/catalog/. >>>> Because it is a permanent redirect, your browser won't access >>>> http://127.0.0.1:8000/, it will go http://127.0.0.1:8000/catalog/. >>>> >>>> You can usually get rid of this redirect by clearing your browser >>>> cache. How exactly that is done depends on the browser you are using. >>>> >>>> This also teaches an important lesson about permanent redirects. Only >>>> use them when you are absolutely sure that you (and more importantly your >>>> users) will never again want to access the old URL. >>>> >>>> Hope that helps, >>>> Daniel >>>> >>>> >>>> >>>> On Sun, Jan 21, 2018 at 6:06 PM, Doug Nintzel <[email protected]> >>>> wrote: >>>> >>>>> Hello, >>>>> >>>>> I am new to Django and followed this Mozilla Django Tutorial >>>>> <https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/development_environment> >>>>> which >>>>> was very helpful, and created the 'locallibrary' project. >>>>> As part of the exercise, it has you create a 'catalog' app and has you >>>>> set up a redirect to the default app >>>>> <https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/skeleton_website> >>>>> ('catalog') >>>>> as below >>>>> >>>>> locallibrary\locallibrary\urls.py >>>>> path('', RedirectView.as_view(url='/*catalog*/', >>>>> permanent=True)), >>>>> >>>>> >>>>> The whole tutorial went smoothly, but now I am wanting to create my >>>>> own project so I created a new virtual environment, created a new >>>>> site/project, and for sanity check started the server "python manage.py >>>>> runserver" in the new project and then tried to navigate to the >>>>> http://127.0.0.1:8000/ , but it instead tries to redirect to the >>>>> tutorial project's app http://127.0.0.1:8000/*catalog*/ and gets a >>>>> 404. >>>>> >>>>> I tried to install Django in the new virtual environment, but no help. >>>>> Here are the errors and some other messages: >>>>> Page not found (404) >>>>> Request Method: GET >>>>> Request URL: http://127.0.0.1:8000/catalog/ >>>>> >>>>> Using the URLconf defined in CalendarAlerts.urls, Django tried these >>>>> URL patterns, in this order: >>>>> >>>>> 1. admin/ >>>>> >>>>> The current path, catalog/, didn't match any of these. >>>>> >>>>> You have 14 unapplied migration(s). Your project may not work properly >>>>> until you apply the migrations for app(s): admin, auth, contenttypes, >>>>> sessions. >>>>> Run 'python manage.py migrate' to apply them. >>>>> January 21, 2018 - 09:28:59 >>>>> Django version 2.0.1, using settings 'CalendarAlerts.settings' >>>>> Starting development server at http://127.0.0.1:8000/ >>>>> Quit the server with CTRL-BREAK. >>>>> Not Found: /catalog/ >>>>> [21/Jan/2018 09:29:13] "GET /catalog/ HTTP/1.1" 404 1971 >>>>> Not Found: /favicon.ico >>>>> [21/Jan/2018 09:29:13] "GET /favicon.ico HTTP/1.1" 404 1980 >>>>> >>>>> (CalendarAlert_env) >>>>> C:\Users\dnintzel\Documents\django_projects\CalendarAlerts>*python -m >>>>> django --version* >>>>> *2.0.1* >>>>> >>>>> (CalendarAlert_env) >>>>> C:\Users\dnintzel\Documents\django_projects\CalendarAlerts>python >>>>> --version >>>>> *Python 3.6.4* >>>>> >>>>> >>>>> Can someone help me understand why the new project is referencing the >>>>> old (and how to resolve)? >>>>> Is it related to the virtual environment? >>>>> >>>>> I am also interested in BKMs for use of virtual environments in this >>>>> case? Specifically, should Django need to be installed on each virtual >>>>> environment (if you don't have it installed globally?). I am actually a >>>>> little surprised that Django commands executed in the new project before >>>>> I >>>>> installed it in that VE. >>>>> >>>>> Thanks in advance, >>>>> Doug >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Django users" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> Visit this group at https://groups.google.com/group/django-users. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/django-users/772985a8-537a-4cdb-8030-177262e44efd%40googlegroups.com >>>>> >>>>> <https://groups.google.com/d/msgid/django-users/772985a8-537a-4cdb-8030-177262e44efd%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>
-- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/6af3710d-9ef7-42c0-9ffe-d3993b9fd491%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

