Notes|Django|template 多個設置

d.l.spm
2 min readApr 21, 2020

--

兩種方法

兩種方法:
方法一:改變 INSTALLED_APPS 裡面順序,因為 Django 會依照 INSTALLED_APPS 順序去找 template,一旦找到相符的 html 就會返回
方法二:改變 templates 結構

方法一、

INSTALLED_APPS = [
....略
'blog',
'blog_v2',
]
# 改為INSTALLED_APPS = [
....略
'blog_v2',
'blog',
]

方法二、

在 template 底下 new 一個 app 名稱(這樣才不會跟其他 app 衝突),底下所有檔案在複製進去,這樣就算 html 檔名相同也不用怕了。

結構

.
└── blog_v2
├── blog.html
├── blog_v2index.html
├── default
│ ├── base.html
│ ├── footer.html
│ └── header.html
└── index_blog.html

修改 views.py(./blog_v2/views.py)

把所有.html 檔案路徑前面再加上 ‘/blog_v2’(你的 app name)

from django.shortcuts import render
from blog_v2.models import Post
def index(request):
blog = Post.objects.all()
work = Post.objects.last()
return render(request, 'blog_v2/blog_v2index.html', {
'blog': blog,
'work': work,
})

以及擴展模板裡所有的 .html 路徑也要改

參考:

--

--

d.l.spm
d.l.spm

No responses yet