Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何反转';url';django中包含的URL数量_Python_Django_Django Urls - Fatal编程技术网

Python 如何反转';url';django中包含的URL数量

Python 如何反转';url';django中包含的URL数量,python,django,django-urls,Python,Django,Django Urls,假设我的项目url.py如下所示: urlpatterns = [ path("admin/", admin.site.urls), path("foo/", include("foo.urls"), name="foo"), ] 然后我有一个文件foo/urls.py,其中包含一些进一步的URL: urlpatterns = [ path("bar/", views.b

假设我的项目
url.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')来得到
foo`。有没有办法做到这一点

一(unideal)解决方案
我可以在
foo/urls.py
的最末端放置一个虚拟视图,路径为
,然后将其反转。但是我不喜欢这个解决方案。它让人感觉有点黑客味,如果用户点击过这个URL,它可能会有问题。

您的unideal解决方案实际上正是Django想要的。这意味着在
foo.url
中添加路径:
path(“,views.index,name=“foo”)

我知道这让您感觉有点不舒服,但目前/foo路径指的是服务器上没有资源,因为还没有定义它的路径。Django甚至无法逆转这条道路,因为它没有指向任何东西


如果您仍然希望反转路径,而Django将返回404错误,那么实际上您必须定义一个返回404响应的简单视图。

我是否可以建议在foo
include
调用中包含一个名称空间。这将有助于更好的url反转,并允许您使用具有相同名称的多个url,只要名称空间不同。