我试图在基于类的视图中使用诸如polls:detail
之类的东西,例如:
class QuestionDetail(DetailView):
template_name = 'polls:result'
但是,出现
TemplateDoesNotExist at /polls/2/resultpolls:result
错误...urls.py是:
from django.conf.urls import url
from polls.views import IndexView, DetailView, ResultsView
from . import views
app_name = 'polls'
urlpatterns = [
url(r'^$', IndexView.as_view(), name='index'),
url(r'^(?P<pk>\d+)/$', DetailView.as_view(), name='detail'),
url(r'^(?P<pk>\d+)/result$', ResultsView.as_view(), name='result'),
url(r'^(?P<pk>\d+)/vote$', views.vote, name='vote'),
]
我想主要的问题是,如何在基于类的视图中使用URL名称,而不是显式提供模板名称(例如
polls/question_results.html
)?除了
template_name
以外,还有什么吗?我读到,在URL中使用名称是一种很好的做法,因此,如果URL本身发生更改,其余代码仍然有效,所以我正在尝试这样做。
最佳答案
网址名称和模板名称绝对是绝对的东西。template_name
是.html
文件的路径。
网址的name
参数,可用于使用django.urls.reverse
从名称反转网址
关于python - Django:基于类的 View ,URL和template_name,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47046442/