覆盖django中的管理模板以添加自定义javascript

时间:2014-01-21 17:39:35

标签: javascript django django-forms django-templates django-admin

我有一个模型,我需要在其管理表单中添加一些自定义javascript处理。

我已通过以下指南尝试了一项实施: https://docs.djangoproject.com/en/1.5/ref/contrib/admin/#overriding-admin-templates

所以我创建了自己的change_form.html,并且我覆盖了object-tools-items并将我的js放在那里,但是当我转到更改表单时,我没有看到它。然后,就像测试一样,我把它直接放到真正的django change_form.html中,但仍然没有。

然后看看是否正在使用该模板,我更改了它 - 添加了数据,创建了语法错误,但仍然没有效果。所以似乎根本没有使用该模板。我向change_form.html求助以查看它的渲染位置,我在contrib / admin / options.py:render_change_form()中找到它,所以我在那里设置了一个断点,但它从未被击中。但HTML确实看起来像是来自该模板。

有人可以给我一些指示吗?

1 个答案:

答案 0 :(得分:2)

您无需覆盖管理模板即可将自定义javascript添加到管理页面。

您可以像这样添加资源:

https://docs.djangoproject.com/en/dev/topics/forms/media/#assets-as-a-static-definition

然后您只需要覆盖管理网站使用的表单。