У меня есть некоторые страницы, такие как пользовательское соглашение, которое я хочу показывать с макетом или без него (extends
) в зависимости от того, как он называется. Я использую jQuery Fancybox
для загрузки этих страниц в iframe. Если JS отключен, ссылки должны открываться в новом окне с полным макетом, иначе, если они находятся в iframe, они не нуждаются в макете.Как получить версию без макета страницы?
В настоящее время, я делаю с помощью JQuery, чтобы вырезать верхний/нижний колонтитул (заменяющий тело только часть содержимого)
if(window.location != window.parent.location) {
$('body').html($('#content'));
}
Но это не кажется правильным, чтобы загрузить вещи, которые будут никогда не будет отображаться (или, что еще хуже, будет отображаться в течение полутора секунд, пока JS не запустится). Я предполагаю, что я мог бы сделать, это создать частичный шаблон, содержащий только контент, а затем две страницы контейнера, одну с верхним и нижним колонтитулами и одну без; они оба включают в себя частичное. Затем используйте JS для изменения ссылки ... которая должна была бы указывать на разные виды, которые в свою очередь вызывали бы разные шаблоны ... кажется, это ужасно много работы. Должен быть лучший способ?
@ZeissS:
Нечто подобное не возможно в Django:
{% if not iframe %}
{% extends "layouts/default.html" %}
{% endif %}
{% extends %}
тег должен быть первым тегом в шаблоне, таким образом, она не может быть условно прокомментировал. Возможно, я мог бы сделать это в самой компоновке ... и тогда это применимо ко всем моим страницам ... давайте попробуем это.
(я не знаю django) Оставайтесь с одним видом, но перемещайте верхние и нижние колонтитулы снаружи и делайте 'if' вокруг включения, где вы проверяете параметр запроса. Вам не нужно создавать несколько видов/храмов. – ZeissS