首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django NoReverseMatch错误

问Django NoReverseMatch错误
EN

Stack Overflow用户
提问于 2011-06-08 01:53:22
回答 4查看 4.1K关注 0票数 1

我是Django的新手,并且已经开始从事一个成熟的Django项目。

我想添加一个新的页面到用户帐户屏幕,并链接到它。但是我得到了一个NoReverseMatch错误。

我在/users/urls.py中添加了:

代码语言:javascript
复制
url(r'^panel/history$',
    'theproject.users.views.history',
    name='account_history'
),

...which与上面的线是一致的:

代码语言:javascript
复制
url(r'^panel$',
    'theproject.users.views.control_panel',
    name='account_panel'
),

我在/users/views.py中添加了:

代码语言:javascript
复制
@login_required
def history(request):
    return render_to_response('users/ourbrand_history.html', {},
    context_instance=RequestContext(request))

...which与上面的线是一致的:

代码语言:javascript
复制
@login_required
def control_panel(request):
    return render_to_response('users/ourbrand_panel.html', {},
    context_instance=RequestContext(request))

我在/templates/users/ourbrand_panel.html中添加了:

代码语言:javascript
复制
<a href="{% url account_history %}">History</a>

...which与上面的线是一致的:

代码语言:javascript
复制
<a href="{% url account_panel %}">Home</a>

现在,当我加载/panel时,我得到一个TemplateSyntaxError: NoReverseMatch。

代码语言:javascript
复制
Reverse for 'account_history' with arguments '()' and keyword arguments '{}' not found.

更新:作为测试,我删除了模板中的链接-- /panel加载正常。如果我删除了/users/urls.py和/users/views.py,/panel仍然会加载。我已经删除了所有的cookie,历史记录等。我必须在终端运行一个命令(像ruby中的rake )才能提交对urls.py的更改吗?或者,改变应该“只起作用”吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-09 03:22:22

回答我自己的问题(基于提供的帮助here)...

由于服务器是生产服务器,因此在服务器重新启动之前,对urls.py的更改不会产生任何影响。目前,我没有su访问,所以无法apachectl restart,但它似乎可以解决这个问题。

票数 1
EN

Stack Overflow用户

发布于 2011-06-08 02:04:26

尝试:

代码语言:javascript
复制
{% url users.views.control_panel %}
{% url users.views.history %}

在模板中并更改:

代码语言:javascript
复制
url(r'^panel/history/$','theproject.users.views.history',name='account_history'),
url(r'^panel/$','theproject.users.views.control_panel',name='account_panel'),

           ^

在urls中。(请注意第一个参数中的尾部斜杠。)

票数 2
EN

Stack Overflow用户

发布于 2012-06-07 03:22:34

如果你使用的是mod_wsgi,那么一个简单的:

代码语言:javascript
复制
$ touch /path/to/your/wsgi_file.wsgi

应该可以做到这一点(不需要重新启动服务器)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6269528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档