| Age | Commit message (Collapse) | Author |
|
|
|
This is consistent with Python's official documentation
and it's a sphinx recommendation too[1].
[1] http://sphinx-doc.org/markup/desc.html#dir-method
Refs #21855.
|
|
Thanks Tim Graham for the review.
|
|
Thanks pydanny for the report. Also, added documentation about
base_fields attribute and its difference with fields attribute.
|
|
Thanks alex_koval for the report.
|
|
|
|
|
|
Refs #20199 #16986.
Thanks @akaariai, @bmispelon, @mjtamlyn, @timgraham for the reviews.
|
|
Thanks Elec for the report and Simon Charette for the review.
|
|
|
|
Also removed a sentence that was incorrect: raising a
`ValidationError` inside `Form.clean` doesn't clear the
`cleaned_data` attribute.
Thanks to loic84 and timograham for the review.
|
|
shadowing them.
|
|
|
|
|
|
writing validators.
Thanks nicolas at niconomicon.net for the suggestion.
|
|
Thanks gsf for the suggestion.
|
|
Thanks PaulM for the suggestion and Luke Granger-Brown and
Wiktor Kołodziej for the initial patch.
|
|
refs [fb1dd6b13a] and [1c4a9bd9ad1]
|
|
Reviewed by Trac alias MarkusH.
|
|
|
|
In `BoundField.__iter__`, the widget's id attribute is now passed to
each subwidget. A new id_for_label property was added to ChoiceInput.
|
|
|
|
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.
|
|
|
|
|
|
Thanks CollinAnderson for the report.
|
|
Thanks Tim Graham for the review.
|
|
|
|
Thanks johnsmith for the suggestion.
|
|
Thanks Marc Tamlyn and Tim Graham for the review.
|
|
|
|
fields
|
|
error_messages
|
|
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.
|
|
Thanks littlepig for the suggestion.
|
|
|
|
|
|
|
|
Largely inspired from django-floppyforms. Designed to not depend
on OpenLayers at code level.
|
|
This starts the deprecation period for PIL (support to end in 1.8).
|
|
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.
|
|
Refs #20104.
|
|
Refs #17840. Thanks Carl Meyer for noticing the omission.
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
When the 'invalid' error message is set at field level, it masks
the error message raised by the validator, if any.
|