兩種方法
兩種方法:
方法一:改變 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 Postdef index(request):
blog = Post.objects.all()
work = Post.objects.last()
return render(request, 'blog_v2/blog_v2index.html', {
'blog': blog,
'work': work,
})
以及擴展模板裡所有的 .html 路徑也要改
參考: