Как ссылаться на 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 ответ:
Если вы хотите быть совместимыми с прямой передачей, именованные URL-адреса станут необходимыми.
Временная шкала устаревания для версии 2 гласит:
Возможность реверсировать () URL-адреса, используя пунктирный путь Python, будет удалена.
Внутри тега url используется функция reverse, поэтому он будет подлежать такому же устареванию. Это упоминается в конце документа для тега url.
Если вы все еще хотите повернуть вспять по пути, вы можете посмотреть на источник для того, как это делается сейчас и повторить это вручную. Но, вероятно, есть веская причина для решения удалить эту способность.