Wenn wir ein URL-Tag in unserer Java-Vorlage haben, wird es auf einen Klick {% url 'product_details' pk=soproduct.id %}
ausgeführt und es wird innerhalb der Hyper-Link das Ziel wird der vollständige Pfad einschließlich Domäne und Pfad verwendet.Wie Django Uri Vorlage Tags aus dem Client-Seite Java Script ausführen?
<a href="{% url 'soproduct_details' pk=soproduct.id %}">{{ soproduct.id }}</a>
und arbeitet perfekt und
erzeugen Aber wenn wir gleiche Vorlage Tag innerhalb Client-Seite Java-Script
var destination = {% url 'product_details' pk=soproduct.id %}
es verwenden möchten, ein Problem m, die die Verbindung, die erzeugt werden wird, um den Pfad enthalten aber die Domain nicht enthalten
/Produktion/Unterproduktaddierer/details/7/
Wie dieses Problem gelöst werden kann?
UPDATE:
Dies ist das Skript Ich versuche, es auszuführen, in der for-Schleife befindet sich in der django-Vorlage.
<script>
var currentLocation = window.location.href;
function AddCardToTrello() {
Trello.addCard({
url: currentLocation,
name: "{{ soproduct.product }}",
due: {{ soproduct.required_date|date:"SHORT_DATE_FORMAT" }}
});
}
function addCardThenGo(url) {
AddCardToTrello();
window.location.href = url;
}
</script>
Und gleich nach dem Skript, das ich meinen Ruf haben
<a onclick="addCardThenGo({% url 'add_to_production_board' pk=soproduct.id uri=request.build_absolute_uri %})">Add to Trello</a>
So wird Skript so oft im Code wiederholt werden, wie Schleife mit neuen Parametern geht
Die ' URL-Tag wird immer die URL relativ zum Hostnamen generieren. Der Browser nimmt automatisch den aktuellen Root Ihrer Site, um die absolute URL zu erstellen. Dasselbe sollte mit Ajax-Anrufen geschehen. Der Anruf sollte mit der generierten relativen URL funktionieren. –
Ich hatte das gleiche Verständnis, aber es tut es einfach nicht, wenn es in Java-Skript verwendet wird –
Wie Docs sagen: "{% url%} Gibt eine absolute Pfadverweis (eine URL ohne den Domänennamen) mit einer bestimmten Ansicht und optionale Parameter ... ". Es wurde nicht von django gemacht, es ist das Verhalten des Browsers. Wie auch immer, warum brauchst du den Domainteil dort? Wenn Sie sich die Quelle der Seite ansehen, werden Sie feststellen, dass der href-Teil "production/subproduct/details/7 /" ohne Domain ist. –