我试图让 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 的项目。
