Form submissions return 404 with Wagtail 7.x due to FormMixin isinstance check
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
Research direction
Start with coderedcms.models and inspect CoderedFormMixin alongside wagtail/contrib/forms/views.py, especially get_submissions_list_view and Wagtail's FormMixin check. Reconcile the mixins without breaking existing form behavior, then verify that the admin submissions URL no longer returns 404 for a CodeRed form under Wagtail 7.x.
Written by the indexing model from the issue text.
Description
As @vsalvino and the team know, I am not a programmer and tend to find my way by trial and error (mostly error). So, like many people lately, I've been using Claude Code to assist with web development. The error description below was created by Claude in response to an error I am seeing. I apologize if it's inappropriate to post an issue generated by an LLM (it does look like a pretty good issue description, though...).
Description
Form submissions are inaccessible in the Wagtail admin (404 error) when using CodeRed CMS 6.0 with Wagtail 7.x. The Forms listing page shows forms correctly, but clicking to view submissions returns a 404.
Steps to Reproduce
- Install CodeRed CMS 6.0.0 with Wagtail 7.1.x
- Create a FormPage with some form fields
- Submit the form a few times to create submissions
- Go to Wagtail admin → Forms
- Click on the form page to view submissions
- Result: 404 error at
/admin/forms/submissions/<page_id>/
Root Cause
In May 2025, Wagtail added an isinstance check in wagtail/contrib/forms/views.py (commit efd5d49):
def get_submissions_list_view(request, *args, **kwargs):
page_id = kwargs.get("page_id")
form_page = get_object_or_404(Page, id=page_id).specific
if not isinstance(form_page, FormMixin):
raise Http404 # <-- This causes the 404
return form_page.serve_submissions_list_view(request, *args, **kwargs)
The problem is that CoderedFormMixin does not inherit from wagtail.contrib.forms.models.FormMixin:
>>> from wagtail.contrib.forms.models import FormMixin
>>> from coderedcms.models import CoderedFormPage, CoderedFormMixin
>>> issubclass(CoderedFormPage, FormMixin)
False
>>> issubclass(CoderedFormMixin, FormMixin)
False
Suggested Fix
CoderedFormMixin should inherit from wagtail.contrib.forms.models.FormMixin to pass the isinstance check. This may require reconciling any method/attribute conflicts between the two mixins.
Alternatively, CodeRed CMS could register its own URL route for form submissions that bypasses Wagtail's check.
Environment
- CodeRed CMS: 6.0.0
- Wagtail: 7.1.1
- Python: 3.14
- Django: 5.1.x
Related
This likely also affects wagtail-flexible-forms since StreamFormMixin similarly does not inherit from Wagtail's FormMixin.
- Dominant language
- Python
- Stars
- 765
- Forks
- 154
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from coderedcorp/coderedcms
-
Type: Bug
Difficulty 1/5 Under an hour Newbie friendliness 78/100
coderedcorp/coderedcms#714 ·
-
Type: Bug
Difficulty 1/5 Under an hour Newbie friendliness 65/100
coderedcorp/coderedcms#711 ·
-
Type: Bug
Difficulty 3/5 1-2 days Newbie friendliness 45/100
coderedcorp/coderedcms#713 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 58/100
coderedcorp/coderedcms#709 ·
-
Type: Bug
Difficulty 2/5 1-3 hours Newbie friendliness 55/100
coderedcorp/coderedcms#707 · 1 comment ·
All issues in coderedcorp/coderedcms
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100