我对 Django 还很陌生,所以请使它对新手友好:D。 它是关于一个简单的待办事项列表。我希望每个项目都有三个按钮,用于删除、编辑或在本例中检查。 在下面的代码中,我想创建一个检查按钮,将 bool 值设置为 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
最佳答案
代码表示当 View 完成时重定向到索引,在本例中这可能看起来像是刷新。但是,您没有显示任何有关其完成状态的指示,因此没有任何变化。
您可以在某处添加 {{do.complete}}
,也可以使用管理界面来查看 complete
变量是否已设置。 more info here
你知道 View 中的代码是否运行了吗?
关于python - Django 待办事项检查按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48953848/