Не сохроняються даные в форме

Мне нужно сделать добавление работы списку детей. Задумка в том что добовлять каждому ученику фотографии и одной кнопкой все сохронять. Все данные получаю, но что-то не то с сохронением. Не валидны даные изображения, но не понимаю почему. Думаю что есть и другие не валидные данные. Подскажите какие и как правильно их передавать?

Каие данные я имею: Initial data for student 1 : {'name_work': 'рациональные числа', 'writing_date': datetime.datetime(2024, 3, 15, 16, 18, 37, tzinfo=datetime.timezone.utc), 'student_type': 2, 'number_of_tasks': '10', 'student': 4, 'example': 1, 'teacher': 1, 'image_work': <InMemoryUploadedFile: только_ответы.jpg (image/jpeg)>}

Текст ошибки: Errors for student 1 :

  • image_work
  • This field is required.
  • Initial data for student 1 : {'name_work': 'рациональные числа', 'writing_date': datetime.datetime(2024, 3, 15, 16, 18, 37, tzinfo=datetime.timezone.utc), 'student_type': 2, 'number_of_tasks': '10', 'student': 2, 'example': 1, 'teacher': 1, 'image_work': <InMemoryUploadedFile: пусто.jpg (image/jpeg)>} Errors for student 1 :
  • image_work
  • This field is required.
  • Мой views класс

    class CreateStudentWorkView(View):
    
    def post(self, request, type_work_id):
        try:
            type_work_obj = TypeStudentWork.objects.get(pk=type_work_id)
            students = User.objects.filter(student_class=type_work_obj.school_class)
    
            for student in students:
                image_file = request.FILES.get("image_work_" + str(student.id))
                if image_file:
                    initial_data = {
                        'name_work': type_work_obj.name_work,
                        'writing_date': type_work_obj.writing_date,
                        'student_type': type_work_obj.id,
                        'number_of_tasks': '10',
                        'student': student.id,
                        'example': type_work_obj.example.id,
                        'teacher': request.user.id,
                        'image_work': image_file
                    }
                    print("Initial data for student", student.username, ":", initial_data)
                    form = StudentWorkForm(initial_data)
                    if form.is_valid():
                        form.save()
                    else:
                        print("Errors for student", student.username, ":", form.errors)
        except Exception as e:
            print(e)
        return redirect('moderator')
    

    Мой html страницы создания работы

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>All Students</title>
    </head>
    <body>
        <h1>All Students</h1>
        <form action="{% url 'create_work' type_work.id %}" method="post" enctype="multipart/form-data">
            {% csrf_token %}
            <table>
                <thead>
                    <tr>
                        <th>Фамилия</th>
                        <th>Имя</th>
                        <th>Добавить работу</th>
                    </tr>
                </thead>
                <tbody>
                    {% if students %}
                        {% for student in students %}
                        <tr>
                            <td>{{ student.last_name }}</td>
                            <td>{{ student.first_name }}</td>
                            <td>
                                <input type="file" name="image_work_{{ student.id }}">
                                <input type="hidden" name="student_id_{{ student.id }}" value="{{ student.id }}">
                            </td>
                        </tr>
                        {% endfor %}
                    {% else %}
                        <tr>
                            <td colspan="3">Нет учеников в данном классе</td>
                        </tr>
                    {% endif %}
                </tbody>
            </table>
            <div class="button-container">
                <button type="submit" class="save-button">Сохранить работы</button>
            </div>
        </form>
    </body>
    </html>

    Модель рабоботы

    class StudentWork(models.Model):
    name_work = models.CharField(max_length=55)
    writing_date = models.DateTimeField()
    student_type = models.ForeignKey(
        TypeStudentWork,
        related_name='type_works',
        on_delete=models.CASCADE,
        blank=True,
        null=True
    )
    number_of_tasks = models.CharField(max_length=5, default="5")
    student = models.ForeignKey(
        User,
        related_name='student',
        on_delete=models.SET_NULL,
        null=True
    )
    example = models.ForeignKey(
        Example,
        on_delete=models.SET_NULL,
        null=True
    )
    image_work = models.ImageField(upload_to='image')
    text_work = models.TextField(null=True, blank=True)
    proven_work = models.TextField(null=True, blank=True)
    assessment = models.CharField(max_length=10, null=True, blank=True)
    teacher = models.ForeignKey(
        User,
        related_name='teacher',
        on_delete=models.SET_NULL,
        blank=True,
        null=True
    )
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    deleted_at = models.DateTimeField(blank=True, null=True)
    
    Вернуться на верх