Форум сайта python.su
Можно ли в Django сделать следующее. Предположим есть подtemplate, который будет использован другим template, это обычно называют partial в ROR. И вот я хочу внутри template написать:
{ goto('head') }
<style></style>
<script>// какойнибудь jquery</script>
{ goto('head') }
<div>body</div>
Отредактировано (Фев. 27, 2009 11:09:19)
Офлайн
StackOverflowЕсли вы его научите, то сумеет.
Возможно надо писать custom tag, но пока я не понял, умеет ли он использовать такие телепорты.
Офлайн
А может подскажите библиотеки кастомных тегов?
>>Тут главное отойти от принципа “а вот в технологии X есть Y”, а решать конкретную задачу в рамках имеющихся средств.
вот и определяю есть эти средства, чи нет их.
>>Если вы его научите, то сумеет.
Смогу научить его такому? API позволит?
Задача выходит следующая:
1. В любом темплейте (parent или childe), устанавливаеться один тег {{ telepoint “head” }}, с указанием своего имени, таких может быть несколько.
2. Во время его выполнения, каждый из telepoint оставляет своё место как метку, и записывает в список себя
3. Затем блок {{ teleputter “head” “unique-name” }} блок {{ teleputterend }} распихивает по каждому telepoint блоки, при этом просчитывая ключи уникальности блоков
Отредактировано (Фев. 27, 2009 12:15:46)
Офлайн
Что-то вы всё равно уже скатились до деталей реализации концепции, которую вы придумали с абсолютно лишним mainline'ом ввиде “телепортации”. Понятно что этого нет.
Скорей всего если вы от неё абстрагируетесь, то либо найдете простое решение в виде кастомного тага или inclusion тега.
Но в любом случае даже в таком виде есть шанс реализовать задуманное.
Плюс поищите всякие django-* проекты на Google Code или гитхабе.
Офлайн
а если в самом виде формировать список подключаемых js файлов? общие для базового шаблона вынести в отедельную ф-ю все нужные для него js, потом в виде шаблона который наследвуется от базового, брать через эту ф-ю список базовых файлов добавлять к нему нужные и отправлять в шаблон.. внутри шаблона уже циклом обернуть их для подключения в хтмл.
возможно это даже ввиде декоратора как то можно удобно сделать который подключит к виду все нужные для его работы js файлы..
Отредактировано (Фев. 27, 2009 16:54:45)
Офлайн
to Evg
Ваше решение самое простое. Действительно если js редкий, то его имеет смысл передавать в темплейт, а если частый то нужно грузить сразу одним пакетом все.
Офлайн
еще вариант - можно передавать в шабон имя файла который нужно инклудить с js подключениями, в другом виде просто перекрывать файл другим новым файлом, внутри нового файла делать инклуд базового (который перекрыли) и дописывать новые подключения.
Офлайн
на первой странице документации
{% 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 %}
Офлайн