Django: поиск части URL-адреса представления с помощью {% url%} - PullRequest
1 голос
/ 25 марта 2010

У меня проблемы с получением только части URL с тегом {% url %}.

Настройка 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»).

Затем в шаблоне я хочу получить доступ к этому URL-адресу через AJAX, но мне нужно предоставить параметр UUID с использованием JavaScript, поэтому на самом деле мне нужна только часть /delete/ URL-адреса. Мое текущее решение таково:

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 Ответ

1 голос
/ 25 марта 2010

Мне кажется, это звучит не совсем хакерски.

Но если вы действительно не хотите делать это таким образом, можно было бы сделать параметр uuid необязательным в URLconf, добавив префикс ?:. Конечно, вам нужно будет еще немного проверить в представлении, чтобы убедиться, что у вас действительно есть uuid.

...