diff options
| author | Christopher Cave-Ayland <c.cave-ayland@imperial.ac.uk> | 2023-06-01 13:26:56 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-07-24 09:09:53 +0200 |
| commit | 95e4d6b81312fdd9f8ebf3385be1c1331168b5cf (patch) | |
| tree | 028600422e4c5f72fcce712aa5dd6a7f70118de3 /tests/model_formsets | |
| parent | b9473cac65190822e7c94f695f1f7b4d5b49502a (diff) | |
Fixed #34532 -- Made formset_factory() respect Form's default_renderer.
Co-authored-by: David Smith <smithdc@gmail.com>
Diffstat (limited to 'tests/model_formsets')
| -rw-r--r-- | tests/model_formsets/tests.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/model_formsets/tests.py b/tests/model_formsets/tests.py index 598dc57e7a..f78772da56 100644 --- a/tests/model_formsets/tests.py +++ b/tests/model_formsets/tests.py @@ -9,10 +9,12 @@ from django.db import models from django.forms.formsets import formset_factory from django.forms.models import ( BaseModelFormSet, + ModelForm, _get_foreign_key, inlineformset_factory, modelformset_factory, ) +from django.forms.renderers import DjangoTemplates from django.http import QueryDict from django.test import TestCase, skipUnlessDBFeature @@ -2365,3 +2367,44 @@ class TestModelFormsetOverridesTroughFormMeta(TestCase): BookFormSet = modelformset_factory(Author, fields="__all__", renderer=renderer) formset = BookFormSet() self.assertEqual(formset.renderer, renderer) + + def test_modelformset_factory_default_renderer(self): + class CustomRenderer(DjangoTemplates): + pass + + class ModelFormWithDefaultRenderer(ModelForm): + default_renderer = CustomRenderer() + + BookFormSet = modelformset_factory( + Author, form=ModelFormWithDefaultRenderer, fields="__all__" + ) + formset = BookFormSet() + self.assertEqual( + formset.forms[0].renderer, ModelFormWithDefaultRenderer.default_renderer + ) + self.assertEqual( + formset.empty_form.renderer, ModelFormWithDefaultRenderer.default_renderer + ) + self.assertIsInstance(formset.renderer, DjangoTemplates) + + def test_inlineformset_factory_default_renderer(self): + class CustomRenderer(DjangoTemplates): + pass + + class ModelFormWithDefaultRenderer(ModelForm): + default_renderer = CustomRenderer() + + BookFormSet = inlineformset_factory( + Author, + Book, + form=ModelFormWithDefaultRenderer, + fields="__all__", + ) + formset = BookFormSet() + self.assertEqual( + formset.forms[0].renderer, ModelFormWithDefaultRenderer.default_renderer + ) + self.assertEqual( + formset.empty_form.renderer, ModelFormWithDefaultRenderer.default_renderer + ) + self.assertIsInstance(formset.renderer, DjangoTemplates) |
