Django URL的命令空间

为避免在模板中使用URL的硬编码,可以使用{% url %}模板标签来解决

<li><a href="/task/{{ task.id }}/">{{ task.name }}</a></li>
可以用以下方法替换
<li><a href="{% url 'detail' task.id %}">{{ task.name }}</a></li>

注:
detail是url中使用name参数定义
url(r'^(?P<task_id>d+)/$', views.detail, name='detail')
如果多个应用中避免名字冲突,可以使用命名空间
在项目的URL中使用
urlpatterns = patterns('',
    url(r'^task/', include('task.urls', namespace="task")),
    url(r'^admin/', include(admin.site.urls)),
)
模板中可以写为
<li><a href="{% url 'task:detail' task.id %}">{{ task.name }}</a></li>



 
 
原文地址:https://www.cnblogs.com/noobkey/p/5666168.html