Django:使用{%url%}查找视图的部分URL

时间:2010-03-25 15:54:22

标签: django django-templates django-urls

我只能使用{% 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");

这似乎更像是对我的黑客攻击。那么,还有比这更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

我必须说,这对我来说听起来并不完全是个hackish。

但是如果你真的不想这样做,一个选择就是在URLconf中使uuid参数成为可选的,前缀为?:。当然,您需要在视图中进行更多验证,以确保您确实拥有一个uuid。

相关问题