summaryrefslogtreecommitdiff
path: root/tests/model_formsets
diff options
context:
space:
mode:
authorChristopher Cave-Ayland <c.cave-ayland@imperial.ac.uk>2023-06-01 13:26:56 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-07-24 09:09:53 +0200
commit95e4d6b81312fdd9f8ebf3385be1c1331168b5cf (patch)
tree028600422e4c5f72fcce712aa5dd6a7f70118de3 /tests/model_formsets
parentb9473cac65190822e7c94f695f1f7b4d5b49502a (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.py43
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)