我正在尝试从Django管理上下文中获取JavaScript拾取变量集。 '原始'对象已存在,是我需要的模型对象。但是,我需要将对象名称放入我可以在JavaScript中使用的变量中。
<script>
var className = "{{ original.__class__.__name__ }}";
</script>
我有一个内联和模型管理员,我可以使用它,但Media类只会获取文件。我需要的是一种将上述代码插入管理模板而不覆盖模板本身的方法。覆盖模板需要我知道我的代码到底在哪里,我不会知道,因为这段代码将成为包的一部分。
有没有办法动态更新TEMPLATE_DIRS
设置对象?如果是这样,那么我可以使用模板方法来解决我的问题。
答案 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的项目。