2017-10-09 120 views
0

在我的根文件夾中,我有一個模板文件夾,裏面有一個base.html文件。我有一個應用程序與一些HTML,我希望它擴展base.html。從項目根Django擴展模板

這裏的內部base.html文件的代碼:

<header><h3>Header here</h3></header> 
    {% block content %} 
    {% endblock %} 
<footer><h3>Footer here</h3></footer> 

內部應用程序的代碼是:

{% extends base.html %} 
{% block content %} 
<h1>{{ question.question_text }}</h1> 
<ul> 
    {% for choice in question.choice_set.all %} 
    <li>{{ choice.choice_text }} -- {{ choice.votes }} vote{{ choice.votes|pluralize }}</li> 
{% endfor %} 
</ul> 

<a href="{% url 'polls:detail' question.id %}">Vote again?</a> 
{% endblock %} 

出於某種原因,我在得到一個無效的模板名稱「擴展」標籤的錯誤和我不知道爲什麼。

我從網上搜索更新了我的settings.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', 
      ], 
     }, 
    }, 
] 

回答

1

文件名應與報價

{% extends "base.html" %} 

{% block content %} 
{% endblock %} 
在設置

。 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', 
      ], 
     }, 
    }, 
] 
+0

我已更新模板以包含引號,但現在我得到一個TemplateDoesNotExist錯誤。我已經將目錄包含在DIRS中,如上所示,並且已經檢查了base.html位於預期的目錄中。有任何想法嗎? – dobolicious

+0

@dobolicious檢查最新的答案 – Robert

+0

試過了,還是一樣的錯誤@Robert – dobolicious