来自django 1.9中django.views.generic.simple import direct_to_template的等价物是什么

时间:2016-04-01 06:40:35

标签: python django

我想将我的主页设为index.html,该主页位于名为templates/castle_tm/index.html的模板目录中,但网址显示

  

"没有名为simple"。

的模块

django> 1.4中不推荐使用基于通用的视图。现在,我如何将主页重定向到index.html

urls.py

from django.conf.urls import url, patterns, include
from django.conf.urls.static import static
from django.conf import settings
from django.contrib import admin
from castle import views
from django.views.generic.simple import direct_to_template
admin.autodiscover()
url(r'^api/casinova$', direct_to_template,{"template":"castle_tm/index.html"}),

3 个答案:

答案 0 :(得分:12)

在最新版本的django中,您可以使用TemplateView

from django.views.generic import TemplateView
...
url(r'^api/casinova$', TemplateView.as_view(template_name='castle_tm/index.html')),

答案 1 :(得分:5)

我相信您正在寻找TemplateView

from django.views.generic import TemplateView
url(r'^api/casinova$', TemplateView.as_view(template_name="castle_tm/index.html")),

基于通用的视图已经被基于类的通用视图所取代,这些视图允许您轻松覆盖它们以提供额外的上下文数据并减少代码重复

欲了解更多信息,几年前Russell Keith-Magee在djangocon做了很好的演讲,你可以在这里观看 - Class-based Views: Past, Present and Future

答案 2 :(得分:1)

一个好的解决方案是通过robots.txt处理nginx

location  /robots.txt {
    alias  /path/to/static/robots.txt;
}