我只能使用{% url %}
标记获取网址的一部分。
网址设置包含以下内容:
url("^delete/(?P<uuid>[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})/$",
deleteView,
name = "delete"),
表示通过其UUID删除项目(视图采用参数“uuid”,如您所见)。由于我不想在URL映射更改时更改所有模板,因此我使用的是命名URL(在此示例中为“delete”)。
然后在模板中,我想通过AJAX访问该URL,但需要使用JavaScript提供UUID参数,所以我真的只需要URL的/delete/
部分。我目前的解决方案是:
uuid = "some uuid that should be deleted on the server";
$.get("{% url myinstancenamespace:delete "00000000-0000-0000-0000-000000000000" %}"
.replace("00000000-0000-0000-0000-000000000000", uuid),
function(data)
{
// process server response
}, "text");
这似乎更像是对我的黑客攻击。那么,还有比这更好的解决方案吗?
答案 0 :(得分:1)
我必须说,这对我来说听起来并不完全是个hackish。
但是如果你真的不想这样做,一个选择就是在URLconf中使uuid
参数成为可选的,前缀为?:
。当然,您需要在视图中进行更多验证,以确保您确实拥有一个uuid。