Wagtail Forms

Forms

For the form, replace forms.ModelForm with WagtailAdminModelForm:

# -*- encoding: utf-8 -*-
from wagtail.admin.forms import WagtailAdminModelForm
from .models import RegistrationApplication

class RegistrationApplicationForm(WagtailAdminModelForm):
    class Meta:
        fields = ["firstName", "title", "website"]
        model = RegistrationApplication

    def clean(self):
        cleaned_data = super().clean()
        print("\nclean")
        return cleaned_data

For ModelViewSet options see ModelViewSet…:

# -*- encoding: utf-8 -*-
from wagtail.admin.viewsets.base import ViewSetGroup
from wagtail.admin.viewsets.model import ModelViewSet

from .forms import RegistrationApplicationForm
from .models import RegistrationApplication

class RegistrationApplicationViewSet(ModelViewSet):
    model = RegistrationApplication
    list_display = ["dateOfApplication", "organisation"]
    ordering = ["-dateOfApplication"]
    icon = "user"
    add_to_admin_menu = False
    copy_view_enabled = False
    inspect_view_enabled = False

    def get_form_class(self, **kwargs):
        return RegistrationApplicationForm

# not sure this needed...
# registration_application_viewset = RegistrationApplicationViewSet(
#     "registration_application"
# )

To add to the Wagtail menu:

class MemberViewSetGroup(ViewSetGroup):
    menu_label = "Members"
    menu_icon = "table"
    items = (RegistrationApplicationViewSet,)