如何在 Django 的静态文件中包含模板标签?
How can I include template tags in static files in Django?
我希望能够通过在我的静态文件中使用模板标签(例如 {% url 'my_view' %}
,而不是 /path/to/my_view
来干燥我的静态文件。有办法吗?
简短的回答是否定的。但是你可以绕过这个,我可以想到两种方法:
- 在基本 html 模板中添加包含您需要的 url 的脚本,它们需要在全球范围内可用,以便您可以使用其他脚本访问它们
- 创建一个脚本来生成包含所有 url 的 .js 文件,并将其与所有其他静态文件放在一起(django translations for js 使用类似的方法)
方法 1,类似于:
<html>
...
<script>
var myApp = {
URLS: {
login: {% url 'login' %},
welcome: {% url 'welcome' %},
...
}
}
</script>
<script>console.log("The login url is " + myApp.URLS.login + "!")</script>
<script src="script/that/uses/urls.js"></script>
...
</html>
我希望能够通过在我的静态文件中使用模板标签(例如 {% url 'my_view' %}
,而不是 /path/to/my_view
来干燥我的静态文件。有办法吗?
简短的回答是否定的。但是你可以绕过这个,我可以想到两种方法:
- 在基本 html 模板中添加包含您需要的 url 的脚本,它们需要在全球范围内可用,以便您可以使用其他脚本访问它们
- 创建一个脚本来生成包含所有 url 的 .js 文件,并将其与所有其他静态文件放在一起(django translations for js 使用类似的方法)
方法 1,类似于:
<html>
...
<script>
var myApp = {
URLS: {
login: {% url 'login' %},
welcome: {% url 'welcome' %},
...
}
}
</script>
<script>console.log("The login url is " + myApp.URLS.login + "!")</script>
<script src="script/that/uses/urls.js"></script>
...
</html>