Django - Обновление значения только для последнего элемента списка

Вот как выглядит мой ToDoapp

To Do App

Изменение даты работает только для последнего элемента в списке, но для других элементов выдает ошибку:

ValidationError at /
['“” value has an invalid date format. It must be in YYYY-MM-DD format.']

Я вижу, что независимо от нажатия кнопки "Обновить", она передает только id и дату последнего элемента.

Найдите мой код ниже:

Index.html

{% extends 'base.html' %}
{% block content %}

<h3 style = "margin-bottom: 20px"><strong>To Do List App</strong></h3>

<form method="POST">
    {%csrf_token%}
<ul class="list-group">

{% for task in tasklist %}
<li class="list-group-item d-flex justify-content-between align-items-center">
    <input type='hidden' name = 'task_id' value='{{task.id}}'>{{task.tasks}}
    <span class="badge bg-primary rounded-pill">{{task.duedate}}
        <input type="date" name="datepick" />
        <input type='submit' value ='Update'>   
    </span>
</li>
{% endfor %}

</form>

Views.py

def index(request):
    if request.method == "POST":
        task_id = request.POST.get('task_id')
        task=Task.objects.get(id=task_id)
        datepick = request.POST.get('datepick')
        task.duedate = datepick
        task.save()
    tasklist = Task.objects.all()
    return render(request, 'index.html', {'tasklist':tasklist})

Мне кажется, что ошибка в HTML файле, а я не знаком с HTML.

Каждая строка должна быть в независимой форме, поскольку в настоящее время форма имеет 3 элемента с одинаковым именем

вы должны предоставить уникальное имя для каждого элемента в форме. Поскольку он находится внутри итератора, вы можете использовать {{ forloop.counter }} в качестве имени.

ссылка ниже будет полезна.

Django - номер итерации в цикле for шаблона

У каждой задачи в списке должна быть своя форма.

{% extends 'base.html' %}
{% block content %}
<h3 style = "margin-bottom: 20px"><strong>To Do List App</strong></h3>
<ul class="list-group">
{% for task in tasklist %}
<li class="list-group-item d-flex justify-content-between align-items-center">
<form method="POST">
    {%csrf_token%}
    <input type='hidden' name = 'task_id' value='{{task.id}}'>{{task.tasks}}
    <span class="badge bg-primary rounded-pill">{{task.duedate}}
    <input type="date" name="datepick" />
    <input type='submit' value ='Update'>  
    </span>
</form>
    </li>
{% endfor %}
</ul>
Вернуться на верх