Django中url使用命名空间的错误

Posted 北门吹雪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django中url使用命名空间的错误相关的知识,希望对你有一定的参考价值。

出的错误:

  1. Reverse for \'llist\' with arguments \'()\' and keyword arguments \'{}\' not found. 0 pattern(s) tried: []

  2. Reverse for \'home\' with arguments \'(1L,)\' and keyword arguments \'{}\' not found. 1 pattern(s) tried: [u\'org/home/?P<org_id>(/d+)/$\']

 

出错原因:

  1. 使用命名空间的时候,在模版渲染url时候,命名错误,渲染时候找不大该名字对应的url

  2. 在写url进行路由正则匹配的时候,正则匹配错误

如何解决

  检查用Django的URL渲染的base.html和使用该url地方, 检查命名是否和主url、app中url是否保持一致,更改一致就解决这个问题

__author__ = \'beimenchuixue\'
__blog__ = \'http://www.cnblogs.com/2bjiujiu/\'

# 当出了:Reverse for \'llist\' with arguments \'()\' and keyword arguments \'{}\' not found. 0 pattern(s) tried: []
# 假如我把所有以org开头的url都交个aap operation处理,operation中的urls模块会获得该url
# 我还还给了这个url一个命名空间 org
url(r\'^org/\', include(\'operation.urls\', namespace=\'org\'))

# 然后在operation中写url,并给他起名list
url(r\'^list/$\', OrgView.as_view(), name=\'list\')

# 那么在operation app中所有的模版中url指向这个url路由时候,都需命名一致,也就是说前面要加上org,冒号分割
# 出错时候,当出现模版继承的时候,重点检查各父模版中的url模版是否命名错误
<a href="{% url \'org:llist\' %}">a标签</a>


# 当发现出了 :Reverse for \'home\' with arguments \'(1L,)\' and keyword arguments \'{}\' not found. 1 pattern(s) tried: [u\'org/home/?P<org_id>(/d+)/$\']
# url,后面匹配一个id,我想通过模版渲染时候,不仅仅匹配后面的数字,也通过模版渲染后面的正则表达式
url(r\'^home/?P<org_id>(/d+)/$\', OrgHomeView.as_view(), name=\'home\')
# template,模版渲染中传入一个参数,也就是url正则匹配的org_id值,通过模版进行渲染url
<a href="{% url \'org:home\' course_org.id %}">a标签</a>
# 假如course_org.id = 1 ,那么这个a标签的href = org/home/1
# 这个错误是正则写错了,应该把 ?P<org_id>(/d+) 改成 (?P<org_id>(/d+)),这个错误,检查正则表达式

 

  

 

 

  

 

  

以上是关于Django中url使用命名空间的错误的主要内容,如果未能解决你的问题,请参考以下文章

Django命名空间app_name和namespace

Django:使用变量作为 URL 命名空间?

django:url的命名空间

你如何使用 Django URL 命名空间?

如何在可重用的应用程序中将命名空间 url 与 django 一起使用

如何在 Django 命名空间可重用应用程序中进行反向 URL 搜索