Django form.is_valid() неверно возвращает false для отсутствующего поля

Когда я отправляю форму для обновления задачи в моем проекте, функция is_valid возвращает false, а на странице написано: Ошибка! Пожалуйста, исправьте следующие ошибки: Описание: Это поле является обязательным.

Но когда я вывожу POST-запрос в консоль, поле description не является обязательным, и в нем есть данные.

это функция views.py:

def task_edit(request, task_id, slug):
    """
    Display an individual task for editing.
    """
    # Retrieve the task instance
    task = get_object_or_404(Task, pk=task_id)
    # Retrieve the job instance
    job = get_object_or_404(Job, slug=slug)
    
    if request.method == "POST":
        # Print out the request.POST dictionary to inspect the data
        print(request.POST)
        
        # Initialize form with task instance and data from request
        add_task_form = AddTaskForm(data=request.POST, instance=task)
        
        if add_task_form.is_valid():
            # Save the form data to the task instance
            task = add_task_form.save(commit=False)
            task.job = job
            task.save()
            messages.success(request, 'Task Updated!')
            return HttpResponseRedirect(reverse('job_detail', args=[slug]))
        else:
            messages.error(request, 'Error updating task!')
    else:
        # Initialize form with task instance
        add_task_form = AddTaskForm(instance=task)

а это функция JS:

// Handle click event for edit button
$(".edit-button").on("click", function() {
    console.log("Edit Task button clicked");

    var taskId = $(this).data("task_id");
    
    var description = $(this).data("description");
    var tradesRequired = $(this).data("trades-required");
    var tradesmanAssigned = $(this).data("tradesman-assigned");
    var timeRequired = $(this).data("time-required");
    var isCompleted = $(this).data("is-completed");
    var slug = $(this).data("slug");
    console.log(taskId);
    console.log(slug);
    console.log("Trades Required:", tradesRequired);

    // Populate the add_task_form fields with task details
    $("#id_form-0-description").val(description);
    // For trades_required, set the checkboxes based on the received data
    setTradesCheckboxes(tradesRequired);
    $("#id_form-0-tradesman_assigned").val(tradesmanAssigned);
    $("#id_form-0-time_required").val(timeRequired);
    // Set the is_completed checkbox based on the data
    $("#id_form-0-is_completed").prop("checked", isCompleted === "True");

    // Change the submit button name to indicate editing the task
    $("button[type='submit']").attr("name", "edit_task");
    $("button[type='submit']").addClass( "btn-edit" );
    // Show the add_task_form
    $("#add_task_form").show();
    addTaskButton.hide();
    editButtons.innerText = "Update";
    var url = `/tradesman/${slug}/edit_task/${taskId}/`;
    console.log("Edit URL:", url);
    taskForm.attr("action", `edit_task/${taskId}/`);
});

и вот код файла forms.py:

class AddTaskForm(forms.ModelForm):
    class Meta:
        model = Task
        fields = ('id', 'description', 'trades_required', 'time_required', 'is_completed')

request.post:

add_task_form.form.errors:

Ошибка! Пожалуйста, исправьте следующие ошибки: Описание: Это поле обязательно для заполнения.

Я новичок в программировании и Django. Пожалуйста, не стесняйтесь спрашивать любую дополнительную информацию!

Я пытался отключить требование для всех полей формы, но тогда при нажатии кнопки отправки вся задача очищается от любых данных.

Вернуться на верх