Skip to main content
 首页 » 编程设计

javascript之如何在 Django 管理页面上插入 <script> 标签

2025年05月04日2352php

我试图让 JavaScript 从 Django 管理上下文中获取一个变量集。 “原始”对象已经存在并且是我需要的模型对象。但是,我需要将对象名称放入可在 JavaScript 中使用的变量中。

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

我有一个 Inline 和一个可用于此目的的模型 Admin,但 Media 类只会获取文件。我需要的是一种将上述代码插入管理模板而不覆盖模板本身的方法。覆盖模板需要我知道我的代码将驻留的确切位置,我不知道,因为此代码将成为包的一部分。

有没有办法动态更新 TEMPLATE_DIRS 设置对象?如果是这样,那么我可以使用模板方法来解决我的问题。

请您参考如下方法:

实现此目的的一种方法是覆盖您的管理模板。现在为此你应该创建一个 Virtualenv并在其中安装 python 和 Django。

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

在控制台输入以下内容:

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

这将输出您的 django 安装路径。如果你使用的是 virtualenv,它通常是这样的:

~/myproject/env/lib/pythonX.X/site-packages/django

所以管理模板在:

~/myproject/env/lib/pythonX.X/site-packages/django/contrib/admin/templates/admin

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

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