python - 动态扩展 urlpatterns

标签 python django django-urls

我有应用程序 app1。它已连接(通过 INSTALLED_APPS)app2;假设 app2 对我来说是某种黑盒子。但我知道 app2 在它的 url 中有一些 i18n_patterns。
我需要包含从 app2 到我的 app1 的所有 url。并将它们包含在根位置:

urlpatterns = ('',
    (r'', include("app1.urls")),
    (r'', include("app2.urls")),
)

因为 app2.urls 中的 i18n_patterns 这样的 include 会引发
配置不当(“不允许在包含的 URLconf 中使用 i18n_patterns。”)
源代码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/

相关文章:

python - csv模块python3.1

python - 在 alpine docker 容器中安装 psycopg2

javascript - Vue.js "npm run build"但 Vue.js 未绑定(bind)到 DOM/工作

python - 随机化 DataFrame 列中的值

python - 过滤登录用户创建的预订

python - 如何以编程方式对 Django 中的用户进行身份验证?

python - 在本地 WiFi 网络上服务 Django 项目

python - 如何将变量从一个 View 传递到另一个 View 并在 Django 中使用最后一个 View 的 URL 进行渲染?

Django/python : 'function' object has no attribute 'as_view'

python - DJango - NoReverseMatch 错误