Как я могу увидеть текущие шаблоны url, в которые смотрит "обратный"?
Я вызываю reverse в представлении с аргументом, который, по моему мнению, должен работать, но не работает. В любом случае я могу проверить, что там и почему моего рисунка нет?
django
django-urls
django-views
Interstar
источник
источник
Ответы:
Если вам нужен список всех URL-адресов в вашем проекте, сначала вам нужно установить django-extensions , добавьте его в свои настройки следующим образом:
А затем запустите эту команду в своем терминале
Для получения дополнительной информации вы можете проверить документацию.
источник
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
django_extensions
в свойINSTALLED_APPS
после установкиПопробуй это:
Или, если вы все еще используете Django 1. *:
источник
set(v[1] for k,v in get_resolver(None).reverse_dict.items())
django.core.urlresolvers
был удален в Django 2.0 , замените строку импорта наfrom django.urls import get_resolver
Решение Django> = 2.0
Я протестировал другие ответы в этом посте, и они либо не работали с Django 2.X, либо были неполными или слишком сложными. Поэтому вот мой взгляд на это:
Этот код печатает все URL-адреса, в отличие от некоторых других решений, он будет печатать полный путь, а не только последний узел. например:
источник
yield acc + [str(l.pattern)]
строку наyield acc + [str(l.pattern)], l.callback
. Имейте в виду, что он вернет саму функцию просмотра, а не имяDjango 1.11, Python 2.7.6
Затем вставьте следующий код.
Пример вывода:
источник
None
в строкуurls = urlresolvers.get_resolver(None)
, и я иногда получал «Нет» в начале некоторых URL-адресов.Есть рецепт на activestate
источник
show_urls(urls.url_patterns)
.ModuleNotFoundError: No module named 'urls'
, не знаю почему?test.py
в корне моего проекта и получил эту ошибку, также, если я делаю этоimport urls
в интерпретаторе, я также получаю эту ошибку.import urls
это локальный импорт, поэтому вам, вероятно, нужно это сделатьfrom app_name import urls
.Я использую следующую команду:
(Python3 + Django 1.10)
Использование:
Пример вывода:
источник
print
. Вместо этого используйтеself.stdout.write
. docs.djangoproject.com/en/1.10/howto/custom-management-commandsЯ использую плагин: https://github.com/django-extensions/django-extensions , в нем есть команда show_urls, которая может помочь.
источник
В оболочке python manage.py
источник
В Django 3.0 это очень просто:
Печать:
[<URLPattern '' [name='home']>, <URLPattern '/testing' [name='another_url']>]
источник
Я расширил команду Сети, чтобы показать пространство имен, все части URL-адресов, автоматическую настройку ширины столбцов, отсортированную по (пространство имен, имя): https://gist.github.com/andreif/263a3fa6e7c425297ffee09c25f66b20
Обновление: новая версия с OrderedDict теперь находится в пакете django-🍌s: https://github.com/5monkeys/django-bananas/blob/master/bananas/management/commands/show_urls.py
источник
Просто введите URL-адрес, который, как вы знаете, не существует, и сервер вернет сообщение об ошибке со списком шаблонов URL-адресов.
Например, если у вас есть сайт по адресу http: // localhost: 8000 / something
Введите
http: // localhost: 8000 / something / blahNonsense , и ваш сервер вернет список поиска URL и отобразит его в браузере.
источник
Минималистичное решение для django 2.0
Например, если вы ищете URL-адрес первого приложения из installed_apps, вы можете получить к нему доступ следующим образом:
источник
get_resolver
изdjango.core.urlresolvers
. Спасибо, Марсио!Django 1.8, Python 2.7+ Просто запустите эти команды в своей оболочке. Оболочка Python manage.py и выполните следующий код.
источник
Вы можете создать динамический импорт для сбора всех шаблонов URL из каждого приложения в вашем проекте с помощью простого метода, например:
list_of_all_url_patterns = get_url_patterns()
Недавно я использовал что-то подобное для создания тега шаблона для отображения активных ссылок навигации.
источник
Вот
your_main_app
имя приложения, в котором размещен ваш файл settings.pyисточник