Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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 什么';在include中使用名称空间有什么意义?(Django 2.0)_Python_Django_Django Templates_Django Views - Fatal编程技术网

Python 什么';在include中使用名称空间有什么意义?(Django 2.0)

Python 什么';在include中使用名称空间有什么意义?(Django 2.0),python,django,django-templates,django-views,Python,Django,Django Templates,Django Views,如果在应用程序的URL中添加app_名称实际上允许我使用“app:view”语法,那么在include中使用名称空间有什么意义呢 Blog_app/url.py 此代码用于将url反转为如下所示的posts/detail example.html Blog\u app/url.py中的app nameapp\u name='posts'用作url命名空间。如果删除它,将得到一个名称空间错误。您可以在include中分配另一个名称空间,这两个名称空间都可以用作url名称空间。正如Django网站所

如果在应用程序的URL中添加app_名称实际上允许我使用“app:view”语法,那么在include中使用名称空间有什么意义呢

Blog_app/url.py 此代码用于将url反转为如下所示的posts/detail

example.html
Blog\u app/url.py中的app name
app\u name='posts'
用作url命名空间。如果删除它,将得到一个名称空间错误。您可以在
include
中分配另一个名称空间,这两个名称空间都可以用作url名称空间。

正如Django网站所说:

URL名称空间允许您唯一地反转命名的URL模式 如果不同的应用程序使用相同的URL名称。这是一个很好的做法 让第三方应用程序始终使用命名空间URL(就像我们在 教程)。类似地,它还允许您在多个URL时反转URL 部署应用程序的实例。换句话说,自从 单个应用程序的多个实例将共享命名URL, 名称空间提供了区分这些命名URL的方法


我还是没有完全理解。请告诉我我是否正确。如果我在
include
中设置名称空间,而不是在
app\u name
中设置名称空间,我会得到一个错误。。。因此,我必须编写
app\u name
,以便为我的应用程序使用名称空间,如果我想要两个名称空间,我可以在
include
中添加另一个名称空间?像这样:包括('app.url',namespace='app1')和app_name='app2',我可以选择{%url'app1:view%}或{%url-app2:view%}?这就是你的意思?你是对的。您必须始终指定app_名称,然后可以在include中指定另一个名称空间,然后可以在模板中使用任意一个名称。删除应用程序名称将导致此错误。不支持在include()中指定命名空间而不提供应用程序名称。因为一个应用程序可以有多个实例。
from django.urls import path
    from django.views.generic.base import RedirectView
    from . import views

    app_name = 'posts'  #APP_NAME

    urlpatterns = [
           path('',RedirectView.as_view(url='posts/'), name='home'),
           path('posts/',views.post_list, name='list'),
           path('posts/detail/<int:pk>',views.post_detail, name='detail'),
           path('posts/delete',views.post_delete, name='delete'),
           path('posts/create',views.post_create, name='create'),
           path('posts/update',views.post_update, name='update'),]
from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog_app.urls',namespace='posts')),]
<a href="{% url 'posts:list' %}"> Example <a/>
from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog_app.urls')), #NAMESPACE DELETED

]