使用带有JavaScript的django模板标签

时间:2012-04-18 15:02:19

标签: django django-templates

如何在JavaScript中使用Django的模板标签?这是我的代码:

{% block scripts %}
<script>
    $(document).ready(function() {
        var classEditor = {
            dcg: $("div.control-group"),

            set: function(i, errors) {
                $dcg = $(classEditor.dcg[i]);
                $dcg.addClass("error");
                $dcg.children('div').children('div').children('p').text(errors);
            }
        };

        {% if form.email.errors %}
            {% for err in form.email.errors %}
                {{ e|add:err }}
            {% endfor %}
            classEditor.set(1, {{ e }});
        {% endif %}
    })
</script>
{% endblock %}

我想将所有错误发送到函数并使用它执行某些操作。我尝试使用striptagsstringformat,但它总是会引发错误。

1 个答案:

答案 0 :(得分:1)

我不认为您的问题与Javascript有任何关系。问题出在这里:

{{ e|add:err }}

这完全没有意义。您似乎正在尝试建立一个列表e,其中包含form.email.errors中的所有项目。但是你不能在模板中做那种事情 - 设计不允许数据操作。 add过滤器只是为显示执行数值计算,它不会修改对象。

您可能希望在视图中将错误序列化为JSON,并将该JSON对象传递给classEditor.set