- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在我的 urls.py
文件中,我有:
from myapp import views
...
(r'^categories/$', views.categories)
其中 categories
是 myapp/views.py
中的 View 函数。没有其他 URLconf 行引用 views.categories
。
在单元测试文件中,我尝试使用 django.core.urlresolvers.reverse()
获取此 URL,而不是仅仅复制“/categories/”(DRY 等) .所以,我有:
from django.core.urlresolvers import reverse
from myapp import views
...
url = reverse(views.categories)
当我运行我的测试时,我得到一个 NoReverseMatch
错误:
NoReverseMatch: Reverse for '<function categories at 0x1082f30>' with arguments '()' and keyword arguments '{}' not found.
如果我将 URL 模式设为命名模式,它会很好地匹配,如下所示:
url(r'^categories/$', views.categories, 'myapp-categories')
并使用模式名来匹配它:
url = reverse('myapp-categories')
但据我所知 the reverse
documentation ,我不需要为了使用 reverse
而将其设为命名 URL 模式。
知道我做错了什么吗?
最佳答案
Jack M. 的例子几乎是正确的。
如果你想使用命名 url,它需要是一个 url 函数,而不是一个元组。
url(r'^no_monkeys/$', 'views.noMonkeys', {}, "no-monkeys"),
关于python - 如何将 django.core.urlresolvers.reverse 与函数引用而不是命名的 URL 模式一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/134629/
当我尝试使用以下行在 models.py 文件中导入反向时:from django.core.urlresolvers importverse 我收到此错误:ImportError:没有名为的模块'd
我有一个 Angular 应用程序,我想在其中使用自定义 UrlResolver 提供程序以添加一些缓存中断逻辑,如本问题 (https://stackoverflow.com/a/43289767/
我已经创建了一个 Django 项目foo。 ├── manage.py └── foo ├── __init__.py ├── settings.py ├── templat
我想做一些测试,但我对 URLResolver 还不是很熟悉,但我想尽快解决这个问题。 在 TestCase 中,我想向解析器添加一个 URL,这样我就可以使用 Client.get('/url/')
我有一个名为 FAQ 的应用程序,我正在使用 django-vanilla-views,这个应用程序正在运行,但我收到了上面标题中的错误,但错误的正文描述如下:NoReverseMatch:找不到带参
我在 django 上写了一个 webservices 应用程序。此应用程序可以在我们的服务器上作为多个实例找到。 例如: http://server1/testapp/ http://server2
我正在尝试反转命名的 URL 并在其中包含一个查询字符串。基本上,我修改了登录功能,我想在其中发送 ?next=。 这是我现在正在做的:reverse(name) + "?next="+ revers
我正在开发 Django 项目,我需要为输入创建一个表单。我尝试从 django.core.urlresolvers 导入 reverse。我收到一个错误: line 2, in from djang
我正在尝试模拟django.core.urlresolvers.resolve函数,但它似乎不起作用。我已经使用自定义函数进行了测试,它的工作方式就像一个魅力,但模拟完全忽略解决。 代码: test_
我正在使用 django 1.2 并使用 urlresolvers 反向方法从一个 View 转到另一个 View 。 url = reverse(viewOne) 我想传递一个get参数,例如 na
我正在尝试使用 Django REST Framework 创建 Web 服务。在运行服务器时,当我尝试访问管理页面时,出现以下错误: Invalid template library specifi
在我的 urls.py 文件中,我有: from myapp import views ... (r'^categories/$', views.categories) 其中 categories 是
当 django 应用程序部署在非根 apache url 下(使用 WsgiScriptAlias/suburl/path_to_django.wsgi)时,{%url%} 标记和 django.c
我在 View 中遇到 url 解析问题: # URLS.PY from django.conf.urls.defaults import url, include, patterns from ac
我是一名优秀的程序员,十分优秀!