[英]How to reverse 'url' of included urls in django
假设我的项目urls.py
看起来像这样:
urlpatterns = [
path("admin/", admin.site.urls),
path("foo/", include("foo.urls"), name="foo"),
]
然后我有一个文件foo/urls.py
,它有一些进一步的 url:
urlpatterns = [
path("bar/", views.bar, name="bar"),
path("baz/", views.baz, name="baz"),
]
获取“部分”url,它将带您到包含的“url”。 例如,我可以做reverse("bar")
来获得foo/bar
。 但我似乎不能做reverse('foo') to get just
foo`。 有没有办法做到这一点。
我可以在foo/urls.py
的最后放置一个虚拟视图,路径为""
,然后将其反转。 但是我不喜欢这个解决方案。 感觉很hacky,如果用户点击这个URL,可能会遇到问题。
您不理想的解决方案实际上正是 Django 中的预期方式。 这意味着在foo.urls
中添加一个路径: path("", views.index, name="foo")
。
我知道这对您来说感觉很奇怪,但目前 /foo 路径没有引用您服务器上的资源,因为尚未定义它的路径。 Django 甚至能够扭转这条道路是没有意义的,因为它什么都没有。
如果您仍想反转路径,而 Django 将返回 404 错误,您实际上必须定义一个返回 404 响应的简单视图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.