gpt4 book ai didi

python - 确保 urlpatterns 是 path() 和/或 re_path() 实例的列表

转载 作者:行者123 更新时间:2023-11-30 22:15:26 26 4
gpt4 key购买 nike

我的 urlpatterns 有什么问题吗?

urlpatterns = [
re_path(r'^dj-admin/', admin.site.urls),
re_path(r'^admin/', include(wagtailadmin_urls)),
re_path(r'^docs/', include(wagtaildocs_urls)),

i18n_patterns(
path(r'', include(wagtail_urls)),
prefix_default_language = False
)
]

ERRORS:
?: (urls.E004) Your URL pattern [ (None:None) ''>] is invalid. Ensure that urlpatterns is a list of path() and/or re_path() instances.

据我所知,它相当于 docs 中的示例。 :

urlpatterns = [
path('sitemap.xml', sitemap, name='sitemap-xml'),
]

urlpatterns += i18n_patterns(
path('about/', about_views.main, name='about'),
)

顺便说一句:

In [1]: import django

In [2]: django.__version__
Out[2]: '2.0.5'

最佳答案

您已将 i18n_patterns 放在模式列表中,但此函数本身会生成 urlpatterns 列表,而不是单个模式。这与您找到的文档不同。

使用串联:

urlpatterns = [
re_path(r'^dj-admin/', admin.site.urls),
re_path(r'^admin/', include(wagtailadmin_urls)),
re_path(r'^docs/', include(wagtaildocs_urls)),
] + i18n_patterns(
path(r'', include(wagtail_urls)),
prefix_default_language = False
)

或在函数调用前加上*前缀,将所有元素合并到列表中:

urlpatterns = [
re_path(r'^dj-admin/', admin.site.urls),
re_path(r'^admin/', include(wagtailadmin_urls)),
re_path(r'^docs/', include(wagtaildocs_urls)),

*i18n_patterns(
path(r'', include(wagtail_urls)),
prefix_default_language = False
)
]

这称为iterable unpacking并且需要 Python 3.5 或更高版本。

文档使用了+=增强赋值来扩展urlpatterns列表,这可能是一个适合您重复使用的好模式:

urlpatterns = [
re_path(r'^dj-admin/', admin.site.urls),
re_path(r'^admin/', include(wagtailadmin_urls)),
re_path(r'^docs/', include(wagtaildocs_urls)),
]

urlpatterns += i18n_patterns(
path(r'', include(wagtail_urls)),
prefix_default_language = False
)

关于python - 确保 urlpatterns 是 path() 和/或 re_path() 实例的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50298335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com