我对Django很陌生,所以请使其成为新手友好的:D。
它关于一个简单的待办事项清单。我希望每个项目都有三个用于删除,编辑或在这种情况下检查的按钮。
在下面的代码中,我想创建一个将布尔值设置为True的复选框。但是理解做任何事情的代码都只是在刷新一面。命令中没有错误消息或其他信息。
你们能发现错误吗?
很高兴为您提供帮助。
HTML:
<form method="POST">
{% csrf_token %}
<button id="done" type="POST" action="{% url 'complete' do.id%}">
<i class="fas fa-check"></i></button>
<button id="edit"><i class="fas fa-edit"></i></button>
<button id="delete" action="#" method="POST"><i class="fas fa-trash"></i></button>
<a href="/todo/{{do.id}}">{{do.task_title}}</a>
</form>
</li>
网址:
urlpatterns = [
# match list,
url(r'^$', views.index, name='index'),
url(r'^add/$', views.addTodo, name='add'),
url(r'^(?P<pk>[0-9]+)/complete/$', views.completeTodo, name='complete'),
..
]
视图:
def completeTodo(request, todo_id):
if request.method =='POST':
print('alive')
todo = Task.objects.get(pk=todo_id)
todo.complete = True
todo.save()
return redirect('index')
模型:
class Task(models.Model):
task_title = models.CharField(max_length=50)
task_explain = models.CharField(max_length=1500)
complete = models.BooleanField(default=False)
def get_absolute_url(self):
return reverse('todo:detail', kwargs={'pk':self.pk})
def __str__(self):
return self.task_title
最佳答案
代码说完成视图后重定向到索引,在这种情况下,它看起来像是刷新。但是,您没有显示其完成状态的任何指示,因此没有任何变化。
您可以在某处添加{{do.complete}}
,也可以使用管理界面查看是否已设置complete
变量。 more info here
您是否知道视图中的代码是否正在运行?