summaryrefslogtreecommitdiff
path: root/django/forms/utils.py
diff options
context:
space:
mode:
authorDavid Smith <smithdc@gmail.com>2022-11-02 20:13:16 +0000
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-03-24 10:16:30 +0100
commitcad376f844c7bdeeee7607a7c0ea8ae52061309b (patch)
tree674bcfb8a4b99c752bff23c029494987ed62f5ef /django/forms/utils.py
parentd33368b4ab6ae0c01e83d525f7e1655156a640d1 (diff)
downloaddjango-cad376f844c7bdeeee7607a7c0ea8ae52061309b.tar.gz
Fixed #34077 -- Added form field rendering.
Diffstat (limited to 'django/forms/utils.py')
-rw-r--r--django/forms/utils.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/django/forms/utils.py b/django/forms/utils.py
index e0888b6e85..f4fbf3e241 100644
--- a/django/forms/utils.py
+++ b/django/forms/utils.py
@@ -58,6 +58,29 @@ class RenderableMixin:
__html__ = render
+class RenderableFieldMixin(RenderableMixin):
+ def as_field_group(self):
+ return self.render()
+
+ def as_hidden(self):
+ raise NotImplementedError(
+ "Subclasses of RenderableFieldMixin must provide an as_hidden() method."
+ )
+
+ def as_widget(self):
+ raise NotImplementedError(
+ "Subclasses of RenderableFieldMixin must provide an as_widget() method."
+ )
+
+ def __str__(self):
+ """Render this field as an HTML widget."""
+ if self.field.show_hidden_initial:
+ return self.as_widget() + self.as_hidden(only_initial=True)
+ return self.as_widget()
+
+ __html__ = __str__
+
+
class RenderableFormMixin(RenderableMixin):
def as_p(self):
"""Render as <p> elements."""