問題描述
django 1.9 中的 from django.views.generic.simple import direct_to_template 相當於什麼 (What is the equivalent of from django.views.generic.simple import direct_to_template in django 1.9)
我想將我的主頁設為 index.html
,它位於名為 templates/castle_tm/index.html
的模板目錄內,但 url 顯示
“沒有名為 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"}),
參考解法
方法 1:
In latest versions of django you can use TemplateView
from django.views.generic import TemplateView
...
url(r'^api/casinova$', TemplateView.as_view(template_name='castle_tm/index.html')),
方法 2:
I believe you're looking for a TemplateView
from django.views.generic import TemplateView
url(r'^api/casinova$', TemplateView.as_view(template_name="castle_tm/index.html")),
Generic based views have been replaced by class based generic views which allows you to override them easily to provide extra context data and reduce code repetition
For more information, Russell Keith‑Magee did a very good presentation at djangocon a couple of years ago, you can watch it here ‑ Class‑based Views: Past, Present and Future
方法 3:
A good solution is handling robots.txt
via nginx
:
location /robots.txt {
alias /path/to/static/robots.txt;
}
(by shalin、v1k45、Sayse、Alex Jolig)