如何在 Django 的静态文件中包含模板标签?

How can I include template tags in static files in Django?

我希望能够通过在我的静态文件中使用模板标签(例如 {% url 'my_view' %},而不是 /path/to/my_view 来干燥我的静态文件。有办法吗?

简短的回答是否定的。但是你可以绕过这个,我可以想到两种方法:

  1. 在基本 html 模板中添加包含您需要的 url 的脚本,它们需要在全球范围内可用,以便您可以使用其他脚本访问它们
  2. 创建一个脚本来生成包含所有 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>