Использовать теги шаблона Django в jQuery / Javascript - PullRequest
22 голосов
/ 15 мая 2011

Могу ли я использовать теги шаблонов Django внутри Javascript? Например, использование {% form.as_p %} в jQuery для динамического добавления форм на страницу.

Ответы [ 3 ]

27 голосов
/ 15 мая 2011

Да, я делаю это часто.Ваш javascript должен обслуживаться через django, но если вы просто поместите его в заголовок html как встроенный javascript, у вас все будет в порядке.

Например: я использую это, чтобы поставить префикс в динамический набор форм, который я использую.

{% extends "base.html" %}
{% block extrahead %}
<script type="text/javascript">
$(document).ready(function() {
    {# Append fields for dynamic formset to work#}
    {% for fset, cap, _, tid in study_formsets.fset_cap_tid %}
        $(function() {
            $('.form_container_{{ tid }}').formset({
                        prefix: '{{ fset.prefix }}',
                        formCssClass: '{{ tid }}',
                        extraClasses: ['myrow1', 'myrow2']
                    });
        });
    {% endfor %}
});
</script>
{% endblock %}

Примечание в "base.html" У меня есть HTML head, куда загружены библиотеки jquery, которые содержат {% block extrahead %}{% endblock %}.

11 голосов
/ 16 мая 2011

Вы не можете использовать теги шаблонов Django из вашего кода Javascript, если вы это имеете в виду. Все переменные и логика Django перестают существовать после визуализации шаблона и отправки клиенту HttpResponse. В тот момент, когда исполняется Javascript, клиент (браузер) не имеет представления о переменных, с которыми вы отображали шаблон (например, «форма»).

Что вы можете сделать, это заставить Javascript изменить вашу HTML-страницу, используя фрагменты HTML, которые были обработаны вашим шаблоном Django.

Если вы хотите сгенерировать HTML на стороне клиента, я бы порекомендовал взглянуть на библиотеки временных шаблонов на стороне клиента (например, Шаблоны JQuery - используйте их с шаблоном {% verbatim%} ).

0 голосов
/ 12 февраля 2014

Если вы хотите использовать переменные внутри вашего визуализированного javascript I (это мое мнение), подумайте, что это плохая идея. Но если все, что вам нужно, это сгенерировать URL для ваших просмотров, медиа и статических файлов, я делаю это много.

Посмотрите на этот github: jscssmin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...