您的正则表达式是错误的:
而不是这个:
url('complete/<todo_id>', views.completeTodo, name='complete'),
尝试这个:
url(r'^complete/(?P<todo_id>\d+)$', views.completeTodo, name='complete'),
或者如果你想使用path
path('complete/<int:todo_id>', views.completeTodo, name='complete'),
EDIT
由于您使用的是 Django 1.*,因此您不能使用path()
设置所有 URL 的正确方法是url
正则表达式
Note
'^':匹配必须从字符串或行的开头开始。
'$':匹配必须出现在字符串的末尾
'\d+':匹配所有数字
The r
在开始时代表regex
url(r'^$', views.index, name= 'index'),
url(r'^add$', views.addTodo, name ='add'),
url(r'^complete/(?P<todo_id>\d+)$', views.completeTodo, name='complete'),
url(r'^deletecomplete$', views.deleteCompleted, name='deletecomplete'),
url(r'^deleteall$', views.deleteAll, name='deleteall')