我刚刚开始学习django,我的第一个项目是ToDo应用列表(来自教程)。我想通过在update_task tamplet中添加一个复选框来在项目上添加更多功能,以便用户完成任务后可以完成操作。
这是update_task.html
<div class="center-column">
<!---h3>Update Task</h3--->
<div class="item-row">
<h3>Update Task</h3>
<form method="POST" action="">
{% csrf_token %}
{{form.title}}
<input class="btn btn-primary" type="submit" name="Update Task">
<a type="button" class="btn btn-secondary" href="{% url 'todo:index' %}">Cancel</a>
<div class="item-row1">
<h5 class="text-dark font-weight-bold">Is this task complete?</h5>
<div class="regular-checkbox">
{% if task.complete == True %}
<input type="hidden" class="taskCheckbox" name="done" id="{{ task.id }}" value="on">
<label for="{{ task.id }}" class="text-dark">Complete<strike>{{ task }}</strike></label>
{% endif %}
</div>
</div>
这是index.html
<div class="center-column">
<form method="POST" action="/">
{% csrf_token %}
{{form.title}}
<input class="btn btn-info" type="submit" name="Create task">
</form>
<div class="todo-index">
{% for task in tasks %}
<div class="item-row">
<a class="btn btn-sm btn-info" href="{% url 'todo:update_task' task.id %}">Update</a>
<a class="btn btn-sm btn-danger" href="{% url 'todo:delete' task.id %}">Delete</a>
<span>{{task}}</span>
</div>
{% endfor %}
这是view.py
def index(request):
tasks = todo.objects.all()
form = todoForm()
if request.method == "POST":
form = todoForm(request.POST)
if form.is_valid():
form.save()
return redirect('/')
context = {'tasks':tasks, 'form':form}
return render(request, 'todo/index.html', context)
def updateTask(request, pk):
task = todo.objects.get(id=pk)
form = todoForm(instance=task)
if request.method == 'POST':
form = todoForm(request.POST, instance=task)
if form.is_valid():
form.save()
return redirect('/')
context = {'form':form}
return render(request, 'todo/update_task.html', context)
def deleteTask(request, pk):
item = todo.objects.get(id=pk)
if request.method == 'POST':
item.delete()
return redirect('/')
context = {'item':item}
return render(request, 'todo/delete.html', context)
当我在localhost上完成任务时,该任务将无法完成