Найти - Пользователи
Полная версия: Телепортация по темплейту
Начало » Django » Телепортация по темплейту
1
StackOverflow
Можно ли в Django сделать следующее. Предположим есть подtemplate, который будет использован другим template, это обычно называют partial в ROR. И вот я хочу внутри template написать:
{ goto('head') }
<style></style>
<script>// какойнибудь jquery</script>
{ goto('head') }

<div>body</div>
И хочу чтобы это участок ушёл в head, а остальное пошло в body.

Inheritance не подходит, так как таких подтемплейтов должно быть много, а если использовать include, то перенести участки не получиться. Возможно надо писать custom tag, но пока я не понял, умеет ли он использовать такие телепорты.
Александр Кошелев
StackOverflow
Возможно надо писать custom tag, но пока я не понял, умеет ли он использовать такие телепорты.
Если вы его научите, то сумеет.

Тут главное отойти от принципа “а вот в технологии X есть Y”, а решать конкретную задачу в рамках имеющихся средств.
StackOverflow
А может подскажите библиотеки кастомных тегов?

>>Тут главное отойти от принципа “а вот в технологии X есть Y”, а решать конкретную задачу в рамках имеющихся средств.
вот и определяю есть эти средства, чи нет их.

>>Если вы его научите, то сумеет.
Смогу научить его такому? API позволит?

Задача выходит следующая:

1. В любом темплейте (parent или childe), устанавливаеться один тег {{ telepoint “head” }}, с указанием своего имени, таких может быть несколько.
2. Во время его выполнения, каждый из telepoint оставляет своё место как метку, и записывает в список себя
3. Затем блок {{ teleputter “head” “unique-name” }} блок {{ teleputterend }} распихивает по каждому telepoint блоки, при этом просчитывая ключи уникальности блоков
Александр Кошелев
Что-то вы всё равно уже скатились до деталей реализации концепции, которую вы придумали с абсолютно лишним mainline'ом ввиде “телепортации”. Понятно что этого нет.

Скорей всего если вы от неё абстрагируетесь, то либо найдете простое решение в виде кастомного тага или inclusion тега.

Но в любом случае даже в таком виде есть шанс реализовать задуманное.

Плюс поищите всякие django-* проекты на Google Code или гитхабе.
Evg
а если в самом виде формировать список подключаемых js файлов? общие для базового шаблона вынести в отедельную ф-ю все нужные для него js, потом в виде шаблона который наследвуется от базового, брать через эту ф-ю список базовых файлов добавлять к нему нужные и отправлять в шаблон.. внутри шаблона уже циклом обернуть их для подключения в хтмл.

возможно это даже ввиде декоратора как то можно удобно сделать который подключит к виду все нужные для его работы js файлы..
StackOverflow
to Evg
Ваше решение самое простое. Действительно если js редкий, то его имеет смысл передавать в темплейт, а если частый то нужно грузить сразу одним пакетом все.
Evg
еще вариант - можно передавать в шабон имя файла который нужно инклудить с js подключениями, в другом виде просто перекрывать файл другим новым файлом, внутри нового файла делать инклуд базового (который перекрыли) и дописывать новые подключения.
asstet
на первой странице документации
{% extends "base_generic.html" %}

{% block title %}{{ section.title }}{% endblock %}

{% block content %}
<h1>{{ section.title }}</h1>

{% for story in story_list %}
<h2>
<a href="{{ story.get_absolute_url }}">
{{ story.headline|upper }}
</a>
</h2>
<p>{{ story.tease|truncatewords:"100" }}</p>
{% endfor %}
{% endblock %}
соответственно в базовом шаблоне именованные части этого шаблона подключаются в места, где они объявлены
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB