0
当我们在我们的java模板中有一个url标记时,它会在点击执行 {% url 'product_details' pk=soproduct.id %}
并且它在超级链接中使用,目标将是完整路径,包括域和路径。如何从客户端Java脚本中执行Django uri模板标签?
<a href="{% url 'soproduct_details' pk=soproduct.id %}">{{ soproduct.id }}</a>
和完美的作品,并产生
但是,如果我们想用相同的模板标签内客户端的Java脚本
var destination = {% url 'product_details' pk=soproduct.id %}
有一个问题米,这将生成将包括路径但不包括域名的链接
/生产/子产品/信息/ 7/
这可怎么解决?
UPDATE:
这是我尝试执行该脚本位于在Django模板循环。
<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>
,并在之后的脚本我有我的电话
<a onclick="addCardThenGo({% url 'add_to_production_board' pk=soproduct.id uri=request.build_absolute_uri %})">Add to Trello</a>
所以脚本会在代码中重复多次的循环将用新的参数
的' url'标记将始终生成相对于主机名称的url。浏览器会自动获取您网站的当前根目录来构建绝对URI。 Ajax调用应该会发生同样的情况。该调用应该与生成的相对url一起工作。 –
我有同样的理解,但它只是在java脚本中使用它时不这样做 –
正如文档所说:“{%url%}返回匹配给定视图的绝对路径引用(一个没有域名的URL)和可选参数...“。它没有被django完成,它是浏览器的行为。无论如何,你为什么需要那里的域名?如果你查看页面的源代码,你会发现href部分是“production/subproduct/details/7 /”,没有域名。 –