| Age | Commit message (Collapse) | Author |
|
|
|
Thanks SmileyChris for the suggestion.
|
|
|
|
NaN, +Inf, and -Inf are no longer valid values for FloatFields.
|
|
|
|
|
|
Reviewed by Trac alias MarkusH.
|
|
Python 2.7 allows to combine several 'with' instructions.
|
|
In `BoundField.__iter__`, the widget's id attribute is now passed to
each subwidget. A new id_for_label property was added to ChoiceInput.
|
|
This means it doesn't break for people who are doing
`cleaned_data = super(FooForm, self).clean()`.
|
|
If it does, that will be used as the cleaned_data. The default
implementation has been changed to match this change.
|
|
The `MultiValueField` class gets a new ``require_all_fields`` argument that
defaults to ``True``. If set to ``False``, individual fields can be made
optional, and a new ``incomplete`` validation error will be raised if any
required fields have empty values.
The ``incomplete`` error message can be defined on a `MultiValueField`
subclass or on each individual field. Skip duplicate errors.
|
|
|
|
list of choices.
|
|
Should be unneeded with Python 2.7 and up.
Added some unicode_literals along the way.
|
|
|
|
Thanks CollinAnderson for the report.
|
|
Thanks Tim Graham for the report.
|
|
Browsers parse small factors of 10 as 0 under decimal notation.
Thanks to Trac alias matklad for the report and Claude Paroz for the review.
|
|
|
|
Refs #20680.
|
|
BaseModelFormSet.forms is now a cached property instead of being
populated in the __init__ method. This behaviour also matches an
example in the documentation.
Thanks Thomasz Swiderski for the report and Simon Charette for the
review.
|
|
This attribute is only allowed on inputs of type "text", "search", "url",
"tel", "email", or "password".
Thanks to yoyoma for the report and @bmispelon for the review.
|
|
|
|
Thanks to frog32 for the report and to Tim Graham for the review.
|
|
|
|
There was an inconsistency between how the label_tag for forms were
generated depending on which method was used: as_p, as_ul and as_table
contained code to append the label_suffix where as label_tag called on a
form field directly did NOT append the label_suffix. The code for
appending the label_suffix has been moved in to the label_tag code of
the field and the HTML generation code for as_p, as_ul and as_table now
calls this code as well.
This is a backwards incompatible change because users who have added the
label_suffix manually in their templates may now get double label_suffix
characters in their forms.
|
|
Refs #20483.
|
|
Thanks margieroginski for the report.
|
|
Thanks Timo Graham for noticing the failures.
|
|
|
|
Thanks Denis Martinez for the report and initial patch, and
Sergey Kolosov for bringing the patch up to date.
|
|
In _get_changed_data, check if initial_value is a callable and call it
if it is.
|
|
Gives much nicer errors when it fails.
|
|
|
|
Fixed #11160: Formset non_form_errors returns ErrorList() if is_valid is not called
|
|
|
|
|
|
Updated FormSet.non_form_errors() to ensure full_clean() has
been called before returning the errors.
|
|
added '__all__' shortcut
This also updates all dependent functionality, including modelform_factory
and modelformset_factory, and the generic views `ModelFormMixin`,
`CreateView` and `UpdateView` which gain a new `fields` attribute.
|
|
|
|
Also fixed plural messages for DecimalField.
|
|
I refactored RadioSelect and CheckboxSelectMultiple to
make them inherit from a base class, allowing them to share
the behavior of being able to iterate over their subwidgets.
Thanks to Matt McClanahan for the initial patch and to
Claude Paroz for the review.
|
|
|
|
|
|
|
|
Also cleaned up label escaping and consolidated the test suite regarding
label_tag.
|
|
|
|
In any case, setting those variables to non-ascii utf-8 bytestrings
is now considered a programming error.
|
|
This is provided as a new "validate_max" formset_factory option defaulting to
False, since the non-validating behavior of max_num is longstanding, and there
is certainly code relying on it. (In fact, even the Django admin relies on it
for the case where there are more existing inlines than the given max_num). It
may be that at some point we want to deprecate validate_max=False and
eventually remove the option, but this commit takes no steps in that direction.
This also fixes the DoS-prevention absolute_max enforcement so that it causes a
form validation error rather than an IndexError, and ensures that absolute_max
is always 1000 more than max_num, to prevent surprising changes in behavior
with max_num close to absolute_max.
Lastly, this commit fixes the previous inconsistency between a regular formset
and a model formset in the precedence of max_num and initial data. Previously
in a regular formset, if the provided initial data was longer than max_num, it
was truncated; in a model formset, all initial forms would be displayed
regardless of max_num. Now regular formsets are the same as model formsets; all
initial forms are displayed, even if more than max_num. (But if validate_max is
True, submitting these forms will result in a "too many forms" validation
error!) This combination of behaviors was chosen to keep the max_num validation
simple and consistent, and avoid silent data loss due to truncation of initial
data.
Thanks to Preston for discussion of the design choices.
|