【发布时间】:2018-12-29 04:11:50
【问题描述】:
如果在应用程序的 url 中添加 app_name 是真正让我使用“app:view”语法的方法,那么在 include 中使用命名空间有什么意义。
Blog_app/urls.py
>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'),]
项目/urls.py
>from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog_app.urls',namespace='posts')),]
此代码用于将 url 反转为这样的帖子/详细信息
example.html
<a href="{% url 'posts:list' %}"> Example <a/>
但如果删除命名空间,它仍然会将我的网址反转为帖子/详细信息
项目/urls.py
>from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog_app.urls')), #NAMESPACE DELETED
]
【问题讨论】:
-
因为您可以拥有单个应用的多个实例。
标签: python django django-templates django-views