渲染时捕获NoReverseMatch,但具有匹配的URL名称

时间:2013-12-09 21:26:01

标签: python django url error-handling

正如标题暗示我得到了NoReverseMatch错误,但我的url.py有相应的命名url。我对自己错过了一些简单的事情感到非常自信,但对于新事物,我似乎无法找到自己的问题。


错误:(在以下employee_edit.html文件中生成)

  

渲染时捕获NoReverseMatch:反向' employee_new''   参数'()'和关键字参数' {}'没找到。

\家\用户名\ mysite的\ MYAPP \ views.py:

class v_EmployeeCreate(CreateView):
    model = Employee
    template_name = 'employee/employee_edit.html'

    def get_success_url(self):
        return reverse('employee_list')

\家\用户名\ mysite的\ url.py:

from myapp.views import v_EmployeeCreate, v_EmployeeList 
urlpatterns = patterns('',
< ... snip ...>
url(r'^newEmployee$', v_EmployeeCreate.as_view(), name="employee_new"),
)

\ home \ username \ mysite \ myapp \ templates \ employee \ employee_edit.html(第7行):
<form action="{% url 'employee_new' %}" method="POST">


我觉得存在文件路径问题,但我不确定如何解决这个问题。命名URL可以帮助我进入模板,但模板本身无法生成URL。

到目前为止,为了记录,我有:

  1. 重新加载django
  2. 检查拼写
  3. 确认非模板功能(没有模板标签的相同设置很好。页面加载)
  4. 使用教程:http://effectivedjango.com/tutorial/views.html#creating-contacts

1 个答案:

答案 0 :(得分:1)

我认为你使用的是旧版本的Django - 在1.5之前(当前为1.6)。线索是您的错误消息在视图名称周围有两个单引号:在那些旧版本中,您不应在url标记中的名称旁边添加引号。

你应该(最好)升级Django,或者(如果你真的不能这样做)使用{% url employee_new %}