I have a Django
app (I'm fairly new so I'm doing my best to learn the ins and outs), where I would like to have a url endpoint simply redirect to a static html file in another folder (app).
My project file hierarchy looks like:
docs/
- html/
- index.html
myapp/
- urls.py
My urls.py
looks like:
from django.conf.urls import patterns, include, url
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^docs/$', RedirectView.as_view(url='/docs/html/index.html')),
)
However, when I navigate to http://localhost:8000/docs
I see the browser redirect to http://localhost:8000/docs/html/index.html
, but the page is not accessible.
Is there any reason that the /docs/html/index.html
would not be avalable to the myApp
application in a redirect like this?
An pointers would be greatly appreciated.
NOTE:
direct_to_template
has been deprecated since Django 1.5. Use TemplateView.as_view instead.
I think what you want is a Template View, not a RedirectView. You could do it with something like:
urls.py
from django.conf.urls import patterns, include, url
from django.views.generic.simple import direct_to_template
urlpatterns = patterns('',
(r'^docs/$', direct_to_template, {
'template': 'index.html'
}),
)
Just ensure the path to index.html
is in the TEMPLATE_DIRS setting, or just place it in the templates
folder of your app (This answer might help).
I'm pretty sure Django is looking for a URL route that matches /docs/html/index.html
, it does not know to serve a static file, when it can't find the route it is showing an error
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With