Django- URL 命名空间
Django- URL namespace
谁能给我解释一下 Django.I 中 URL namespace 的概念 确实找到了类似的问题 (Anyone knows good Django URL namespaces tutorial?) 但我还是没看懂。
假设您的项目中有三个应用程序:
- 评论
- 产品
- 用户
对于每个应用程序,您在 views.py
中都有一个名为 DetailView
的视图。
class DetailView(generics.RetrieveUpdateDestroyAPIView):
# Some logic here.
要调用视图,您的 urls.py
中有一个 URL,您已将其命名为 detail
。这可能会让人感到困惑!
url(r'^(?P<pk>\d+)$', views.DetailView.as_view(), name='detail')
要区分 URL(例如,在您的模板中使用 {% url ... %}
),您可以使用命名空间。
url(r'^api/v1/reviews/', include(reviews_urls, namespace="reviews"))
当您为 URL 命名空间时,您可以在模板中引用它们或将它们重定向为 reviews:detail
,这可以简化您的生活并使代码更易于重用。
def my_view(request):
...
return redirect('reviews:detail', foo='bar')
谁能给我解释一下 Django.I 中 URL namespace 的概念 确实找到了类似的问题 (Anyone knows good Django URL namespaces tutorial?) 但我还是没看懂。
假设您的项目中有三个应用程序:
- 评论
- 产品
- 用户
对于每个应用程序,您在 views.py
中都有一个名为 DetailView
的视图。
class DetailView(generics.RetrieveUpdateDestroyAPIView):
# Some logic here.
要调用视图,您的 urls.py
中有一个 URL,您已将其命名为 detail
。这可能会让人感到困惑!
url(r'^(?P<pk>\d+)$', views.DetailView.as_view(), name='detail')
要区分 URL(例如,在您的模板中使用 {% url ... %}
),您可以使用命名空间。
url(r'^api/v1/reviews/', include(reviews_urls, namespace="reviews"))
当您为 URL 命名空间时,您可以在模板中引用它们或将它们重定向为 reviews:detail
,这可以简化您的生活并使代码更易于重用。
def my_view(request):
...
return redirect('reviews:detail', foo='bar')