diff options
Diffstat (limited to 'django/forms/forms.py')
| -rw-r--r-- | django/forms/forms.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/django/forms/forms.py b/django/forms/forms.py index 17d4598f4c..8044349517 100644 --- a/django/forms/forms.py +++ b/django/forms/forms.py @@ -21,6 +21,8 @@ from django.utils.html import conditional_escape, html_safe from django.utils.safestring import mark_safe from django.utils.translation import ugettext as _ +from .renderers import get_default_renderer + __all__ = ('BaseForm', 'Form') @@ -65,13 +67,14 @@ class BaseForm(object): # class is different than Form. See the comments by the Form class for more # information. Any improvements to the form API should be made to *this* # class, not to the Form class. + default_renderer = None field_order = None prefix = None use_required_attribute = True def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=ErrorList, label_suffix=None, - empty_permitted=False, field_order=None, use_required_attribute=None): + empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None): self.is_bound = data is not None or files is not None self.data = data or {} self.files = files or {} @@ -97,6 +100,17 @@ class BaseForm(object): if use_required_attribute is not None: self.use_required_attribute = use_required_attribute + # Initialize form renderer. Use a global default if not specified + # either as an argument or as self.default_renderer. + if renderer is None: + if self.default_renderer is None: + renderer = get_default_renderer() + else: + renderer = self.default_renderer + if isinstance(self.default_renderer, type): + renderer = renderer() + self.renderer = renderer + def order_fields(self, field_order): """ Rearranges the fields according to field_order. |
