我是Django的新手,并且已经开始从事一个成熟的Django项目。
我想添加一个新的页面到用户帐户屏幕,并链接到它。但是我得到了一个NoReverseMatch错误。
我在/users/urls.py中添加了:
url(r'^panel/history$',
'theproject.users.views.history',
name='account_history'
),...which与上面的线是一致的:
url(r'^panel$',
'theproject.users.views.control_panel',
name='account_panel'
),我在/users/views.py中添加了:
@login_required
def history(request):
return render_to_response('users/ourbrand_history.html', {},
context_instance=RequestContext(request))...which与上面的线是一致的:
@login_required
def control_panel(request):
return render_to_response('users/ourbrand_panel.html', {},
context_instance=RequestContext(request))我在/templates/users/ourbrand_panel.html中添加了:
<a href="{% url account_history %}">History</a>...which与上面的线是一致的:
<a href="{% url account_panel %}">Home</a>现在,当我加载/panel时,我得到一个TemplateSyntaxError: NoReverseMatch。
Reverse for 'account_history' with arguments '()' and keyword arguments '{}' not found.更新:作为测试,我删除了模板中的链接-- /panel加载正常。如果我删除了/users/urls.py和/users/views.py,/panel仍然会加载。我已经删除了所有的cookie,历史记录等。我必须在终端运行一个命令(像ruby中的rake )才能提交对urls.py的更改吗?或者,改变应该“只起作用”吗?
发布于 2011-06-09 03:22:22
回答我自己的问题(基于提供的帮助here)...
由于服务器是生产服务器,因此在服务器重新启动之前,对urls.py的更改不会产生任何影响。目前,我没有su访问,所以无法apachectl restart,但它似乎可以解决这个问题。
发布于 2011-06-08 02:04:26
尝试:
{% url users.views.control_panel %}
{% url users.views.history %}在模板中并更改:
url(r'^panel/history/$','theproject.users.views.history',name='account_history'),
url(r'^panel/$','theproject.users.views.control_panel',name='account_panel'),
^在urls中。(请注意第一个参数中的尾部斜杠。)
发布于 2012-06-07 03:22:34
如果你使用的是mod_wsgi,那么一个简单的:
$ touch /path/to/your/wsgi_file.wsgi应该可以做到这一点(不需要重新启动服务器)。
https://stackoverflow.com/questions/6269528
复制相似问题