如何在 Django 的 urlpatterns 中获取名称参数列表

How to get a list of name arguments in Django's urlpatterns

假设我有两个应用程序,App1 和 App2。我想获取 urlpatterns 中每个 url 的名称列表。

App1 urls.py:

urlpatterns = (
    url(regex=r'^$', view=views.index_view, name='index_url'),
    url(regex=r'^about/$', view=views.about_view, name='about_url'),
    url(regex=r'^contact/$', view=views.contact_view, name='contact_url'),
)

在 App2 中,我想获取以下列表:

['index_url', 'about_url', 'contact_url']

我可以得到个人名字:

>>> import App1.urls
>>> App1.urls.urlpatterns[1].name
'index_url'

从技术上讲,我可以通过一个循环来收集列表中的每个名称。但是有没有直接的方法来获取它们,例如:App1.urls.urlpatterns.names?

将评论作为答案发布:

使用

names=[u.name for u in urls.urlpatterns if hasattr(u,'name')]

填充名称数组。

好像没有直接访问器