如何在Django的change_form.html中为块内容添加JavaScript

1 投票
1 回答
2140 浏览
提问于 2025-04-17 09:43

我想在从Django后台模板继承的模型的change_form.html模板中添加一些JavaScript代码。我希望根据登录的类型显示模型的一些属性。例如,用户可以是客户或者员工组的成员。有人能指导我吗?我该如何在change_form.html的{% block content %}标签中使用它呢?

1 个回答

2

你其实不需要用到 content 这个部分,因为有 head 这个部分,你可以把你的 JavaScript 放在这里。不过,那个用来防止某些用户修改某些字段的 JavaScript 其实很容易被破解。

{% block extrahead %}
    {{ block.super }}

    <script type="text/javascript">
        $(function() {
            {% if user.get_profile.is_customer %}
                $('#id_of_field_block').hide();
            {% endif %}
        });
    </script>
{% endblock extrahead %}

另外,你可以修改 change_form.html 这个模板,覆盖掉 content 部分,获取原文件的内容作为基础,然后修改字段模板 fieldset.html(或者你也可以只覆盖 fieldset.html,我不太确定)。这个模板会遍历所有字段,你可以在这里添加一些检查。

撰写回答