Сделать все поля в наборе форм модели обязательными для заполнения в HTML - Django

Я просмотрел практически все вопросы на Stack Overflow, связанные с Django Formsets. Ни один из них не отвечает на мой вопрос реалистичным образом.

У меня есть страница, которая использует inlineformset_factory. Цель состоит в том, чтобы родители добавляли свою информацию, а затем информацию о своих учениках. Мне нужно, чтобы ВСЕ поля ученика были обязательными в HTML. Пока только информация о родителях имеет атрибут required в HTML. Количество учеников передается как часть url - example.com/register/3 будет, если родитель зарегистрирует 3 ученика.

Итак, если родитель выбирает 3 учеников на предыдущей странице, он будет отправлен на example.com/register/3, и там будет показана форма родителя с формами 3 учеников. ЭТО РАБОТАЕТ. Что не работает, так это то, что ВСЕ три формы ученика должны быть в HTML.

Мое мнение:

def homeschoolRegister(request, num):
    parent_form = ParentInformationForm()
    StudentFormSet = inlineformset_factory(ParentInformation, StudentInformation, fields=('student_first_name', 'student_last_name', 'grade'), can_delete=False, extra=int(num))
    if request.method == 'POST':
        parent_form_post = ParentInformationForm(request.POST)
        if parent_form_post.is_valid():
            parent = parent_form_post.save(commit=False)
            parent.save()
            student_form_post = StudentFormSet(request.POST, instance=parent)
            if student_form_post.is_valid():
                student_form_post.save()
    try:
        if int(num) <= 0:
            return redirect(reverse('home'))
        if int(num) > 15:
            return redirect(reverse('home'))
        context = {'parent_form':parent_form ,'formset':StudentFormSet}
        return render(request, 'home/home-register.html', context)
    except:
        return redirect(reverse('homeschool-home'))

Мой HTML:

{% extends 'base.html' %}
{% load tailwind_filters %}
{% load static %}
{% block title %} Register {% endblock title %}
{% block content %}

<div class="max-w-4xl mx-auto pb-20 px-5">
    <form method="POST" class="pb-10">
        {% csrf_token %}
        {{parent_form|crispy}}
        {{ formset.management_form}}
        {% for form in formset %}
        {{form|crispy}}
        {% endfor %}
        <button class="standard-button" type="submit">Submit</button>
    </form>
</div>

{% endblock content %}
Вернуться на верх