Right now when there's a validation error there's not enough information to know what went wrong or how to fix it.
Example screenshot of failed class creation
As discussed on other PRs using something like crispy properly would probably get this behavior for free. Adding custom rendering to crispy should be less work than essentially rewriting the important parts of crispy. https://django-crispy-forms.readthedocs.io/en/d-0/layouts.html