来自不同应用的视图在不同的地方寻找模板?

时间:2021-05-27 00:22:58

标签: django django-views

所以我试图用 templateView 显示主页模板,但它让我很困惑。现在我有 3 个应用程序(主要、用户、民意调查)。具有以下结构:

.
├── main
│   └── ...
├── (Project Folder)
│   └── ...
├── polls
│   └── ...
├── users
│   └── ...
└── templates
    ├── main
    │     └── ...
    ├── polls
    │     └── ...
    └── base.html (for extends)

我已经从民意调查中获得了一些意见(CreateView、ListView、DetailView)。我知道默认模板是在应用程序文件夹中搜索的,但我将其更改为在应用程序级别使用它,如上所示。

但是对于我拥有索引视图的这个新应用程序(主应用程序),它的工作方式不一样。 index.html 在 templates/index.html 中搜索,而不是在 templates/main/index.html 中搜索。为什么民意调查应用程序通过在模板中包含一个包含应用程序名称的文件夹而工作,但 main 不能像那样工作?

设置.py

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

主视图.py

# Django imports
from django.views.generic import TemplateView

class Index(TemplateView):
    template_name = 'index.html'

主 urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('main.urls')),
    path('', include('users.urls')),
    path('', include('polls.urls')),
]

0 个答案:

没有答案
相关问题