urls.py
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(程序的一部分)
def completeTodo(request, todo_id):
todo = Todo.objects.get(pk=todo_id)
todo.complete = True
todo.save()
return redirect('index')
Index.html(程序的一部分)我想这就是问题所在。
<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>
发布于 2020-05-06 01:59:45
我也面临着同样的问题,下面是解决方案:
由于您的模型名称是Todo (大写T),因此您将获取每个Tudo的ID,但在视图、URL和模板中,您将写入小写(t)。它会变得区分大小写。
在视图、URL和HTML模板中的任何地方将名称(todo_id)更改为(Todo_id)。
这就是它:
urls.py
url('complete/<Todo_id>', views.completeTodo, name='complete'),
template.html
<a href="{% url 'complete' Todo.id %}">
views.py
def completeTodo(request, Todo_id):
todo = Todo.objects.get(pk=Todo_id)
https://stackoverflow.com/questions/50767021
复制相似问题