我有应用程序app1。它已连接(通过INSTALLED_APPS
)app2;假设app2对我来说是一种黑匣子。但我知道app2在其网址中有一定数量的i18n_patterns。
我需要包括从app2到我的app1的所有URL。并将它们包括在根位置:
urlpatterns = ('',
(r'', include("app1.urls")),
(r'', include("app2.urls")),
)
由于app2.urls中的i18n_patterns,此类
include
将引发ImproperlyConfigured('Using i18n_patterns in an included URLconf is not allowed.')
源代码here
有什么方法可以将
app2.urls
中的所有urlpatterns附加到我的urlpatterns
中,而又不了解它们吗? 最佳答案
例如,您可以from app2.urls import urlpatterns as urlpatterns2
并稍后在urls.py
中执行以下操作:
urlpatterns += urlpatterns2
# or maybe:
# urlpatterns += urlpatterns2[1:] if you don't want to include the initial attribute
这就像一个普通的列表串联,可能会起作用。
注意:这是克服包含限制的一点技巧。如果有更好的方法可以做到这一点,我很想知道。
希望这可以帮助!
关于python - 动态扩展urlpatterns,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16721881/