繁体   English   中英

Django:基于类的视图,URL和template_name

[英]Django: Class-based views, URL and template_name

我试图在基于类的视图中使用诸如polls:detail类的东西,例如:

class QuestionDetail(DetailView):
    template_name = 'polls:result'

但是,我TemplateDoesNotExist at /polls/2/result polls:result得到了TemplateDoesNotExist at /polls/2/result polls: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本身发生更改,其余代码仍然有效,所以这就是我要尝试的方法。

您可以这样使用URL名称:django.urls.reverse('polls:detail',args = [object.id])

而且,您还必须更改template_name设置,并在当前模板文件夹中创建一个模板detail.html。

template_name ='polls / detail.html'

网址名称和模板名称绝对是绝对的东西。

template_name.html文件的路径。

您可以使用url的name参数使用django.urls.reverse从名称反向url

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM