Loading django/forms/boundfield.py +2 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,8 @@ class BoundField(object): widget.is_localized = True attrs = attrs or {} if not widget.is_hidden and self.field.required and self.form.use_required_attribute: attrs['required'] = True if self.field.disabled: attrs['disabled'] = True auto_id = self.auto_id Loading django/forms/forms.py +5 −1 Original line number Diff line number Diff line Loading @@ -67,10 +67,11 @@ class BaseForm(object): # class, not to the Form class. 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): empty_permitted=False, field_order=None, use_required_attribute=None): self.is_bound = data is not None or files is not None self.data = data or {} self.files = files or {} Loading @@ -93,6 +94,9 @@ class BaseForm(object): self._bound_fields_cache = {} self.order_fields(self.field_order if field_order is None else field_order) if use_required_attribute is not None: self.use_required_attribute = use_required_attribute def order_fields(self, field_order): """ Rearranges the fields according to field_order. Loading django/forms/formsets.py +5 −0 Original line number Diff line number Diff line Loading @@ -161,6 +161,10 @@ class BaseFormSet(object): 'auto_id': self.auto_id, 'prefix': self.add_prefix(i), 'error_class': self.error_class, # Don't render the HTML 'required' attribute as it may cause # incorrect validation for extra, optional, and deleted # forms in the formset. 'use_required_attribute': False, } if self.is_bound: defaults['data'] = self.data Loading Loading @@ -195,6 +199,7 @@ class BaseFormSet(object): auto_id=self.auto_id, prefix=self.add_prefix('__prefix__'), empty_permitted=True, use_required_attribute=False, **self.get_form_kwargs(None) ) self.add_fields(form, None) Loading django/forms/models.py +5 −3 Original line number Diff line number Diff line Loading @@ -278,7 +278,7 @@ class ModelFormMetaclass(DeclarativeFieldsMetaclass): class BaseModelForm(BaseForm): def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=ErrorList, label_suffix=None, empty_permitted=False, instance=None): empty_permitted=False, instance=None, use_required_attribute=None): opts = self._meta if opts.model is None: raise ValueError('ModelForm has no model class specified.') Loading @@ -296,8 +296,10 @@ class BaseModelForm(BaseForm): # It is False by default so overriding self.clean() and failing to call # super will stop validate_unique from being called. self._validate_unique = False super(BaseModelForm, self).__init__(data, files, auto_id, prefix, object_data, error_class, label_suffix, empty_permitted) super(BaseModelForm, self).__init__( data, files, auto_id, prefix, object_data, error_class, label_suffix, empty_permitted, use_required_attribute=use_required_attribute, ) # Apply ``limit_choices_to`` to each field. for field_name in self.fields: formfield = self.fields[field_name] Loading docs/ref/forms/api.txt +100 −89 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
django/forms/boundfield.py +2 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,8 @@ class BoundField(object): widget.is_localized = True attrs = attrs or {} if not widget.is_hidden and self.field.required and self.form.use_required_attribute: attrs['required'] = True if self.field.disabled: attrs['disabled'] = True auto_id = self.auto_id Loading
django/forms/forms.py +5 −1 Original line number Diff line number Diff line Loading @@ -67,10 +67,11 @@ class BaseForm(object): # class, not to the Form class. 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): empty_permitted=False, field_order=None, use_required_attribute=None): self.is_bound = data is not None or files is not None self.data = data or {} self.files = files or {} Loading @@ -93,6 +94,9 @@ class BaseForm(object): self._bound_fields_cache = {} self.order_fields(self.field_order if field_order is None else field_order) if use_required_attribute is not None: self.use_required_attribute = use_required_attribute def order_fields(self, field_order): """ Rearranges the fields according to field_order. Loading
django/forms/formsets.py +5 −0 Original line number Diff line number Diff line Loading @@ -161,6 +161,10 @@ class BaseFormSet(object): 'auto_id': self.auto_id, 'prefix': self.add_prefix(i), 'error_class': self.error_class, # Don't render the HTML 'required' attribute as it may cause # incorrect validation for extra, optional, and deleted # forms in the formset. 'use_required_attribute': False, } if self.is_bound: defaults['data'] = self.data Loading Loading @@ -195,6 +199,7 @@ class BaseFormSet(object): auto_id=self.auto_id, prefix=self.add_prefix('__prefix__'), empty_permitted=True, use_required_attribute=False, **self.get_form_kwargs(None) ) self.add_fields(form, None) Loading
django/forms/models.py +5 −3 Original line number Diff line number Diff line Loading @@ -278,7 +278,7 @@ class ModelFormMetaclass(DeclarativeFieldsMetaclass): class BaseModelForm(BaseForm): def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=ErrorList, label_suffix=None, empty_permitted=False, instance=None): empty_permitted=False, instance=None, use_required_attribute=None): opts = self._meta if opts.model is None: raise ValueError('ModelForm has no model class specified.') Loading @@ -296,8 +296,10 @@ class BaseModelForm(BaseForm): # It is False by default so overriding self.clean() and failing to call # super will stop validate_unique from being called. self._validate_unique = False super(BaseModelForm, self).__init__(data, files, auto_id, prefix, object_data, error_class, label_suffix, empty_permitted) super(BaseModelForm, self).__init__( data, files, auto_id, prefix, object_data, error_class, label_suffix, empty_permitted, use_required_attribute=use_required_attribute, ) # Apply ``limit_choices_to`` to each field. for field_name in self.fields: formfield = self.fields[field_name] Loading
docs/ref/forms/api.txt +100 −89 File changed.Preview size limit exceeded, changes collapsed. Show changes