如何在 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')]
填充名称数组。
好像没有直接访问器
假设我有两个应用程序,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')]
填充名称数组。
好像没有直接访问器