Как ссылаться на URL по пути просмотра вместо имени в Django 1.8?


Необходимо ли в Django называть URL-адреса для использования в теге шаблона url?

В документации приведен следующий пример url:

('^client/([0-9]+)/$', 'app_views.client', name='app-views-client')

И может использоваться в шаблоне, подобном этому:

{% url 'app-views-client' client.id %}

Но есть ли какой-то способ изменить представления по пути, а не по имени? Есть способ, который устарел в 1.8 и будет удален в Django 2.0, например:

{% url 'path.to.some_view' v1 %}

В 1.8 и далее Есть ли еще способ изменить представление, не называя его?

1 2

1 ответ:

Если вы хотите быть совместимыми с прямой передачей, именованные URL-адреса станут необходимыми.

Временная шкала устаревания для версии 2 гласит:

Возможность реверсировать () URL-адреса, используя пунктирный путь Python, будет удалена.

Внутри тега url используется функция reverse, поэтому он будет подлежать такому же устареванию. Это упоминается в конце документа для тега url.

Если вы все еще хотите повернуть вспять по пути, вы можете посмотреть на источник для того, как это делается сейчас и повторить это вручную. Но, вероятно, есть веская причина для решения удалить эту способность.