在python django项目期间出现此错误
我不明白为什么模板无法连接。
请让我知道错误的哪一部分,并让我知道如何解决。
我该怎么办?
附上错误图片。
enter image description here
settings.py
INSTALLED_APPS = [
--- skip ---
board.apps.BoardConfig',
]
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',
],
},
},
]
这些是我的项目子列表
/mysite
/board
/migrations
/templates
/board
board_list.html
board_detail.html
search.html
__init__.py
admin.py
apps.py
forms.py
models.py
tests.py
urls.py
views.py
/mysite
__init__.py
settings.py
urls.py
views.py
wsgi.py
/static
css
js
image
/templates
base.html
main.html
db.sqlite3
manage.py
/mysite/mysite/urls.py
from django.contrib import admin
from django.conf.urls import url, include
from .views import MainHome
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', MainHome.as_view(), name='main'),
url(r'^board/', include('board.urls', namespace='board'),
]
/mysite/board/urls.py
from django.conf.urls import url
from .views import *
from mysite.views import MainHome
app_name = 'board_app'
urlpatterns = [
url(r'^$', MainHome.as_view(), name='main'),
url(r'^search/$', SearchFormView.as_view(), name='search'),
url(r'^boards/$', BoardList.as_view(), name='board_list'),
url(r'^boards/(?P<slug>[-\w]+)/$', BoardDetail.as_view(), name='board_detail'),
]
/ mysite / borad / views
from .models import Board
from django.views.generic import ListView
--- skip ---
class BoardList(ListView):
model = Board
template_name = 'board_list.html'
content_object_name = 'boards'
paginate_by = 10
--- skip ---
答案 0 :(得分:1)
在/mysite/borad/views
中,您拥有:
template_name = 'board_list.html'
替换为:
template_name = 'board/board_list.html'
因为board_list.html
位于templates/board
内部。
在settings.py
中,您拥有:
'DIRS': [os.path.join(BASE_DIR, 'templates')],
,这意味着Django将在您的mysite/templates
文件夹中查找模板。像这样删除它:
'DIRS': []
因此,默认情况下,Django会在templates/
目录中查找每个已安装的应用程序。
答案 1 :(得分:0)
您的模板在电路板目录中。而且您的模型模板名称未引用该路径。
在您的class BoardList
中添加template_name = 'board/board_list.html'
答案 2 :(得分:0)
我会尝试一种系统的方法:
TEMPLATE_DIR = os.path.join(BASE_DIR,'templates')
board.apps.BoardConfig
而不是board
,也许我遗漏了一些东西app_name=board
template_name = 'board_list.html
board/templates/board/board_list.html
此外,执行这些更改后,请重新启动服务器。 这有帮助吗?