diff options
| author | seanhelvey <sean.helvey@gmail.com> | 2024-12-13 11:56:53 -0800 |
|---|---|---|
| committer | Jacob Walls <jacobtylerwalls@gmail.com> | 2026-01-22 21:12:23 -0500 |
| commit | b1ffa9a9d78b0c2c5ad6ed5a1d84e380d5cfd010 (patch) | |
| tree | 0fcfd9b90c788e21e58cb9249f4119062b8bfc4e /tests/admin_views/admin.py | |
| parent | 3851601b2e080df34fb9227fe5d2fd43af604263 (diff) | |
Fixed #13883 -- Rendered named choice groups with <optgroup> in FilteredSelectMultiple.
This patch adds support for <optgroup>s in FilteredSelectMultiple widgets.
When a popup returns a new object, if the source field contains optgroup
choices, the optgroup is now also included in the response data.
Additionally, this adds error handling for invalid source_model parameters
to prevent crashes and display user-friendly error messages instead.
Co-authored-by: Michael McLarnon <mmclar@gmail.com>
Diffstat (limited to 'tests/admin_views/admin.py')
| -rw-r--r-- | tests/admin_views/admin.py | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py index 69570a8062..64e0e23229 100644 --- a/tests/admin_views/admin.py +++ b/tests/admin_views/admin.py @@ -18,7 +18,12 @@ from django.utils.html import format_html from django.utils.safestring import mark_safe from django.views.decorators.common import no_append_slash -from .forms import MediaActionForm +from .forms import ( + MediaActionForm, + SectionFormWithDynamicOptgroups, + SectionFormWithObjectOptgroups, + SectionFormWithOptgroups, +) from .models import ( Actor, AdminOrderedAdminMethod, @@ -1345,6 +1350,32 @@ site2.register(Language) site7 = admin.AdminSite(name="admin7") site7.register(Article, ArticleAdmin2) site7.register(Section) + + +# Admin for testing optgroup in popup response +class SectionAdminWithOptgroups(admin.ModelAdmin): + form = SectionFormWithOptgroups + + +class SectionAdminWithObjectOptgroups(admin.ModelAdmin): + form = SectionFormWithObjectOptgroups + + +class SectionAdminWithDynamicOptgroups(admin.ModelAdmin): + form = SectionFormWithDynamicOptgroups + + +site11 = admin.AdminSite(name="admin11") +site11.register(Article, ArticleAdmin2) +site11.register(Section, SectionAdminWithOptgroups) + +site12 = admin.AdminSite(name="admin12") +site12.register(Article, ArticleAdmin2) +site12.register(Section, SectionAdminWithObjectOptgroups) + +site13 = admin.AdminSite(name="admin13") +site13.register(Article, ArticleAdmin2) +site13.register(Section, SectionAdminWithDynamicOptgroups) site7.register(PrePopulatedPost, PrePopulatedPostReadOnlyAdmin) site7.register( Pizza, |
