How do I go straight to template, in Django's urls.py?

TIMEX picture TIMEX · Mar 5, 2011 · Viewed 43.7k times · Source

Instead of going to views.py, I want it to go to to a template, robots.txt.

Answer

Yuji 'Tomita' Tomita picture Yuji 'Tomita' Tomita · Mar 5, 2011

Django 2.0+

Use the class based generic views but register with the django 2.0+ pattern.

from django.urls import path
from django.views.generic import TemplateView

urlpatterns = [
    path('foo/', TemplateView.as_view(template_name='foo.html'))
]

https://docs.djangoproject.com/en/2.0/ref/class-based-views/base/#templateview

Django 1.5+

Use the class based generic views.

from django.views.generic import TemplateView

urlpatterns = patterns('',
    (r'^foo/$', TemplateView.as_view(template_name='foo.html')),
)

Django <= 1.4

Docs: https://docs.djangoproject.com/en/1.4/ref/generic-views/#django-views-generic-simple-direct-to-template

urlpatterns = patterns('django.views.generic.simple',
    (r'^foo/$',             'direct_to_template', {'template': 'foo_index.html'}),
    (r'^foo/(?P<id>\d+)/$', 'direct_to_template', {'template': 'foo_detail.html'}),
)