首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NoReverseMatch:找不到参数为'(1,)‘的'complete’的反转。尝试了1个模式:['complete/<todo_id>']

NoReverseMatch:找不到参数为'(1,)‘的'complete’的反转。尝试了1个模式:['complete/<todo_id>']
EN

Stack Overflow用户
提问于 2018-06-09 03:07:45
回答 1查看 2K关注 0票数 2

urls.py

代码语言:javascript
复制
from django.conf.urls import url
from . import views

urlpatterns = [
url('', views.index, name= 'index'),
url('add', views.addTodo, name ='add'),
url('complete/<todo_id>', views.completeTodo, name='complete'),
url('deletecomplete', views.deleteCompleted, name='deletecomplete'),
url('deleteall', views.deleteAll, name='deleteall')
]

views.py(程序的一部分)

代码语言:javascript
复制
def completeTodo(request, todo_id):
todo = Todo.objects.get(pk=todo_id)
todo.complete = True
todo.save()

return redirect('index')

Index.html(程序的一部分)我想这就是问题所在。

代码语言:javascript
复制
 <ul class="list-group t20">
                    {% for todo in todo_list %}
                        {% if todo.complete %}
                        <li class="list-group-item todo-completed">{{ todo.text }}</li>
                        {% else %}
                        <a href="{% url 'complete' todo.id %}"><li class="list-group-item">{{ todo.text }}</li></a>
                        {% endif %}
                    {% endfor %}
                </ul>
EN

回答 1

Stack Overflow用户

发布于 2020-05-06 01:59:45

我也面临着同样的问题,下面是解决方案:

由于您的模型名称是Todo (大写T),因此您将获取每个Tudo的ID,但在视图、URL和模板中,您将写入小写(t)。它会变得区分大小写。

在视图、URL和HTML模板中的任何地方将名称(todo_id)更改为(Todo_id)。

这就是它:

urls.py

代码语言:javascript
复制
url('complete/<Todo_id>', views.completeTodo, name='complete'), 

template.html

代码语言:javascript
复制
<a href="{% url 'complete' Todo.id %}">   

views.py

代码语言:javascript
复制
def completeTodo(request, Todo_id):
    todo = Todo.objects.get(pk=Todo_id)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50767021

复制
相关文章

相似问题

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