1

我有一个模型,我需要添加一些自定义JavaScript处理到其管理员窗体。我这样说的:在Django中重写管理模板添加自定义javsscript

https://docs.djangoproject.com/en/1.5/ref/contrib/admin/#overriding-admin-templates

所以我创建了自己change_form.html,和我推翻对象的工具项,并把我的JS在那里,但我没有看到它的时候我去改变形成。然后,就像测试一样,我将它直接放入真正的django change_form.html中,但仍然没有任何结果。然后为了查看是否正在使用该模板,我更改了它 - 添加了数据,创建了语法错误,但仍然没有效果。所以看起来这个模板根本没有被使用。我为grepping for change_form.html查看它从哪里渲染,我发现它在contrib/admin/options.py:render_change_form(),所以我在那里设置了一个断点,但它从未被击中。但HTML确实看起来像来自该模板。任何人都可以在这里给我一些指导。

+1

Django调试工具栏会告诉你网页是如何构建的,以及大约一百万其他不可或缺的东西。 https://github.com/django-debug-toolbar/django-debug-toolbar –

+0

django调试工具栏绝对是非常酷,乐于助人。但是当我安装它时,它也下载并安装了django 1.6(我正在运行1.5)幸运的是它安装在不同的地方,但现在我的默认版本是1.6,我需要运行1.5。但是,无论如何,我确信它会派上用场。 –

+0

安装旧版本或使用''pip install --upgrade-strategy =“只有在需要时'''以避免在不需要时自动升级依赖关系 – DylanYoung

回答

2

您不需要重写管理模板来将您的自定义JavaScript添加到管理页面。

您可以添加你的资产是这样的:

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

然后你只需要重写管理网站使用您的形式。

+0

谢谢!这看起来正是我所需要的。我创建了一个表格来覆盖管理形式: 类MyCategoryAdminForm(forms.ModelForm): 类元: 型号=类别 类媒体: JS =( 'CategoryAdmin.js') 但是,相反的回升CategoryAdmin.js似乎将其拆分并且它为每个字符查找文件: 。 。 –

+0

我想出了这个问题 - 它想为js添加一个逗号来修正它的元组。现在我只需要让脚本工作;-) –

+1

干得好,伙计:) –