تمديد BASE.HTML مشكلة
سؤال
أحصل على الخطأ التالي:
Template error
In template /home/mo/python/django/templates/yoga/index.html, error at line 1
Caught TemplateDoesNotExist while rendering: base.html
1 {% extends "base.html" %}
2
3 {% block main %}
4 <p>{{ page.title }}</p>
5 <p>{{ page.info}}</p>
6 <a href="method/">Method</a>
7 {% endblock %}
8
هذا هو ملف my base.html ، الذي يقع في نفس المكان مثل index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<div style="width:50%; marginleft:25%;">
{% block main %}{% endblock %}
</div>
ماذا يحدث بالضبط هنا؟ هل يجب أن يكون ملف base.html موجودًا في مكان آخر؟
المحلول
"في نفس المكان" مثل yoga/index.html
يعني أن القالب هو في الواقع yoga/base.html
.
نصائح أخرى
على افتراض template_dirs يحتوي على /home/mo/python/django/templates/
, ، بدون ال .../yoga/
, ، لذلك تحتاج إلى:
يتحرك base.html
داخل /home/mo/python/django/templates/
أو
اكتب {% extends "yoga/base.html" %}
في القالب الخاص بك
هل base.html في دليل في قائمة template_dirs في ملف الإعدادات الخاص بك؟
base.html يجب أن يكون الملف موجودًا في قاعدة مجلد القوالب لاستخدام "base.html" ، إذا كان موجودًا في مجلد آخر مثل: templates / home / base.html
، ثم يجب عليك تحديد المسار باستخدام
{ % Extends ' home / base.html '% }
لا تنتمي إلى StackOverflow