2015-09-30 2 views
0

Что является самым многоразовым способом для метода «extends» в шаблонах django?Django: многоразовые шаблоны: простираются от base.html

Я видел это очень часто:

{% extends 'base.html' %} 

К сожалению, это не работает для меня. При заказе загрузчика шаблонов сначала загружается шаблон из другого приложения.

У меня есть проект django по умолчанию и приложение, созданное с нуля с помощью Django1.8.

Что я должен делать:

  • использовать другое имя, как 'my_base.html'
  • изменяет порядок шаблона загрузчика
  • другое решение?

ответ

1

Простой способ решить эту проблему - это пространство имен ваших шаблонов. Создайте приложение и внутри каталога приложения (где у вас есть значение по умолчанию views.py) создайте каталог шаблонов, а внутри этого каталога создайте подкаталог, который является именем приложения.

Представьте, что вы есть проект myproj и приложение под названием регистрации, то вы бы:

. 
├── manage.py 
├── myproj 
│   ├── __init__.py 
│   ├── settings.py 
│   ├── urls.py 
│   └── wsgi.py 
└── registration 
    ├── admin.py 
    ├── __init__.py 
    ├── migrations 
    │   └── __init__.py 
    ├── models.py 
    ├── templates 
    │   └── registration 
    │    └── base.html 
    ├── tests.py 
    └── views.py 

Теперь, даже если у вас есть другое приложение, с помощью шаблона под названием base.html, вы всегда можете загрузить конкретный шаблон, нужно с {% extends 'registration/base.html' %}

+0

Да, это хорошо работает для шаблонов из приложения, называемого «регистрация». Если я хочу, чтобы приложение «регистрация» было повторно использовано, какой шаблон делает registration/base.html? – guettli

+0

"какой шаблон регистрации/base.html простирается от?" => канон должен расширять «base.html», который должен быть собственным базовым шаблоном проекта, и пусть разработчики переопределяют шаблоны вашего приложения, если им нужно (что часто бывает). –

Смежные вопросы