В чем разница между тегом {% include ...%} и тегом {% ssi ... parsed%} в шаблонах Django? - PullRequest
4 голосов
/ 13 июня 2011

Похоже, они в основном те же, КРОМЕ того, что вы должны указать ssi абсолютный путь по «соображениям безопасности».За исключением аргументов ключевого слова (которые являются новыми с версии 1.3), эти два, похоже, имеют абсолютно одинаковые возможности.Они действительно избыточны?

1 Ответ

6 голосов
/ 13 июня 2011

Без параметра parsed до {% ssi %} включенный файл не будет рассматриваться как шаблон Django, он будет просто включен как обычный текст.Это означает, что если во включенном файле есть теги / фильтры шаблонов, они не будут интерпретироваться.

Когда вы включаете do параметр parsed, различия становятся больше похожими на то, что вы сказали.

  • Добавлены ограничения безопасности с помощью {% ssi %}, поскольку вы потенциально можете включить любой файл в файловую систему.
  • Вы должны использовать абсолютный URI, а не относительный путь, подходящий для загрузчика шаблонов..
  • До Django 1.5 первый аргумент (путь) должен быть без кавычек.Это означает, что вы не можете использовать переменную шаблона в качестве первого аргумента.

Более подробная информация о последнем пункте в документации .

...