2016-04-02 12 views
1

Ich möchte in der Lage sein, meine statische Dateien zu trocknen, indem ich ein Template-Tag, wie {% url 'my_view' %}, in meiner statischen Datei anstelle von /path/to/my_view. Gibt es eine Möglichkeit, dies zu tun?Wie kann ich Template-Tags in statische Dateien in Django einfügen?

+0

Statische Dateien werden nicht von django bedient, also nein. Ist es für js Dateien? – danielcorreia

+0

@danielcorreia Ja. Sie sind JS. Ich meinte etwas, das laufen würde, wenn ich 'python manage.py collectstatic' verwende (ich plane nicht, die URLs häufiger zu ändern, dann ändere ich die JS). –

Antwort

1

Kurze Antwort ist nein. Aber man dies umgehen können, gibt es zwei Ansätze, die ich denken kann:

  1. fügen Sie ein Skript mit den URLs, die Sie in Ihrer Basis HTML-Vorlage benötigen, müssen sie global verfügbar sein, so dass Sie sie mit anderen Skripten zugreifen können
  2. machen ein Skript eine JS-Datei mit allen URLs zu erzeugen, und legen sie es mit allen anderen Static (django translations for js einen ähnlichen Ansatz verwenden)

Ansatz 1, so etwas wie wäre:

<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>