我试图在基于类的视图中使用诸如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/

10-14 12:06