我有应用程序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/

10-10 11:00