用于待办事项的 Django 检查按钮

Django checkbutton for todo

我是 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>

url:

    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 你知道视图中的代码是运行吗?