diff options
author | David Smith <smithdc@gmail.com> | 2022-11-02 20:13:16 +0000 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-03-24 10:16:30 +0100 |
commit | cad376f844c7bdeeee7607a7c0ea8ae52061309b (patch) | |
tree | 674bcfb8a4b99c752bff23c029494987ed62f5ef /django/forms/utils.py | |
parent | d33368b4ab6ae0c01e83d525f7e1655156a640d1 (diff) | |
download | django-cad376f844c7bdeeee7607a7c0ea8ae52061309b.tar.gz |
Fixed #34077 -- Added form field rendering.
Diffstat (limited to 'django/forms/utils.py')
-rw-r--r-- | django/forms/utils.py | 23 |
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.""" |