如何插入<脚本>标签在Django管理页面上

How do I insert a <script> tag on a Django admin page

本文关键字:Django 标签 管理 脚本 插入 何插入      更新时间:2023-09-26

我试图让JavaScript从Django管理上下文中拾取一个变量集。"原始"对象已经存在,是我需要的模型对象。但是,我需要将对象名称转换为可以在JavaScript中使用的变量。

<script>
  var className = "{{ original.__class__.__name__ }}";
</script>

我有一个内联和一个模型Admin,我可以使用这个,但媒体类将只接受文件。我需要的是一种方法来插入上述代码到一个管理模板,而不覆盖模板本身。重写模板需要我知道我的代码将驻留在哪里,但我不知道,因为这些代码将是包的一部分。

是否有一种方法来动态更新TEMPLATE_DIRS设置对象?如果是这样,那么我可以使用模板方法来纠正我的问题。

实现这一目标的一种方法是重写您的Admin模板。现在你应该创建一个Virtualenv,并在其中安装python和Django。

之后,你可以通过打开python控制台找到你的django路径:python

在控制台中输入以下内容:

import sys
sys.path = sys.path[1:]
import django
print(django.__path__)

这将输出django的安装路径。如果你使用的是虚拟环境,通常是这样的:

~/myproject/env/lib/pythonX。X/网站/django

所以管理模板在:

~/myproject/env/lib/pythonX。X/网站/django contrib/admin/admin/模板

在这里你可以像在普通的django模板中一样添加一个script标签。

注意,virtualenv只是一个建议。你不必使用它,但通常最好这样做,因为它不会影响所有的python/django项目,而只会影响你正在使用env的项目。