#python #django #django-urls
#python #django #django-urls
Вопрос:
Я могу получить функцию просмотра из request.path
:
from django.core.urlresolvers import resolve
view_func, _args, _kwargs = resolve(request.path)
Однако мне нужно нечто большее. Мне нужно взять список имен представлений, например ['edit_foo', 'delete_foo']
, и выяснить, относится ли текущий URL к одному из них.
Я придумал пару идей, используя некоторые внутренние компоненты из django.core.urlresolvers
, но я хочу что-то, что будет эффективным и в некоторой степени правильным (т. Е. Не халтурным, идеально документированным).
Комментарии:
1. Почему у вас не может быть списка представлений вместо этого?
2. @Ignacio — вы имеете в виду список реальных вызываемых функций просмотра?
Ответ №1:
После написания этого длинного вопроса я понял это:/ (публикация для тех, кто случайно столкнется с этим). Это довольно просто:
>>> resolve(request.path).url_name
'edit_foo'
Должно быть, я ошибся относительно resolve
полезности функции, которая огромна.
Комментарии:
1.Можете ли вы указать, где вы нашли это в документах? Редактировать: Неважно, вот оно: docs.djangoproject.com/en/dev/topics/http/urls/#s-resolve И это применимо только к Django 1.3 . В предыдущих версиях это недоступно.
2. @chrisdpratt — а, хорошая мысль. Я использую trunk для личных проектов, стоит отметить.