Вот то, что я реализовал, что выходит из ответа Фабио.Я не знаю, является ли это лучшим способом сделать это, но он работает, как и ожидалось.
from django.views.generic import TemplateView
from django.http import Http404
from django.template.loader import get_template
from django.template import TemplateDoesNotExist
from absolute.menu.models import Menu # specific to my app
class BasicPublicView(TemplateView):
model = Menu #specific to my app
def dispatch(self, request, *args, **kwargs):
try:
self.template_name = request.path[1:] + '.html'
get_template(self.template_name)
return super(BasicPublicView, self).dispatch(request, *args, **kwargs)
except TemplateDoesNotExist:
raise Http404
Это позволяет мне динамически извлекать шаблон из каталога шаблонов, если шаблон существует.Например, http://example.com/products/keyboards
попытается получить шаблон /templates/products/keyboards.html