如何在Django管理页面</script>上插入<script>标记

时间:2014-07-04 03:12:28

标签: javascript python django

我正在尝试从Django管理上下文中获取JavaScript拾取变量集。 '原始'对象已存在,是我需要的模型对象。但是,我需要将对象名称放入我可以在JavaScript中使用的变量中。

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

我有一个内联和模型管理员,我可以使用它,但Media类只会获取文件。我需要的是一种将上述代码插入管理模板而不覆盖模板本身的方法。覆盖模板需要我知道我的代码到底在哪里,我不会知道,因为这段代码将成为包的一部分。

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

1 个答案:

答案 0 :(得分:1)

实现此目的的一种方法是覆盖您的管理模板。现在为此你应该创建一个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 /站点包/ django的

所以管理模板位于:

  

〜/ myproject的/ ENV / LIB / pythonX.X /站点包/ django的/了contrib /管理/模板/管理

您可以像在普通的django模板中一样添加脚本标记。

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