summaryrefslogtreecommitdiff
path: root/django/forms/formsets.py
AgeCommit message (Collapse)Author
2013-06-22Fixed 17478 -- Allowed queryset overriding in BaseModelFormSet initClaude Paroz
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.
2013-06-19Removed several unused imports.Aymeric Augustin
2013-06-18Fixed #20199 -- Allow ModelForm fields to override error_messages from model ↵Loic Bistuer
fields
2013-06-16Fixed #20464 -- Added a `total_error_count` method on formsets.Baptiste Mispelon
Thanks to frog32 for the report and to Tim Graham for the review.
2013-05-20Fixed #20403 -- Ignore forms marked for deletion when validating max_num.Ryan Kaskel
2013-05-18Fixed #11160 - Ensure full_clean is called from non_form_errorsSenko Rasic
Updated FormSet.non_form_errors() to ensure full_clean() has been called before returning the errors.
2013-05-17Replaced an antiquated pattern.Aymeric Augustin
Thanks Lennart Regebro for pointing it out.
2013-05-04Used ngettext in a formsets error messageClaude Paroz
Several languages will distinctly translate '%d or fewer forms' depending on the variable.
2013-03-28Fixed spelling errorsGavin Wahl
2013-03-21Fixed #20084 -- Provided option to validate formset max_num on server.Andrew Gorcester
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.
2013-02-19Added a default limit to the maximum number of forms in a formset.Aymeric Augustin
This is a security fix. Disclosure and advisory coming shortly.
2013-02-08Fixed #18906 -- Ignored to-be-deleted forms in formset validate_uniqueClaude Paroz
Thanks c.pollock at bangor.ac.uk for the report.
2013-01-03Fixed #19545 -- Make sure media/is_multipart work with empty formsetsSimon Charette
2013-01-01Removed unusable parameters to empty_form propertyClaude Paroz
2012-12-06Fixed #18574 -- Make BaseFormSet.is_valid call its underlying forms' is_validAndreas Hug
Thanks Simon Charette for the report and the initial patch.
2012-11-03Fixed #18963 -- Used a subclass-friendly patternAymeric Augustin
for Python 2 object model compatibility methods.
2012-10-13Fixed #16479 - Forms generated from formsets use ErrorList instead of ↵Ludovic Delaveau
supplied error_class Patch with tests from charettes, updated.
2012-09-06Made use of property decorator in formsets.pyClaude Paroz
2012-08-30Fixed #18751 -- Cleaned up BaseFormSet._should_delete_formClaude Paroz
We can do that now that cleaned_data is guaranteed to be present. Related to [121fd109]. Thanks Simon Charette for his work on the ticket.
2012-08-13[py3] Avoided comparison with None value in formsetsClaude Paroz
2012-08-12[py3] Refactored __unicode__ to __str__.Aymeric Augustin
* Renamed the __unicode__ methods * Applied the python_2_unicode_compatible decorator * Removed the StrAndUnicode mix-in that is superseded by python_2_unicode_compatible * Kept the __unicode__ methods in classes that specifically test it under Python 2
2012-08-08[py3] Replaced __nonzero__ by __bool__Claude Paroz
Of course, __nonzero__ alias has been kept for Python 2 compatibility.
2012-08-03Replaced some byte strings by str() callsClaude Paroz
This is a useful trick when Python 2 awaits byte strings and Python 3 Unicode (regular) strings.
2012-07-22[py3] Added Python 3 compatibility for xrange.Aymeric Augustin
2012-07-22[py3] Replaced unicode/str by six.text_type/bytes.Aymeric Augustin
2012-06-07Fixed #18269 -- Applied unicode_literals for Python 3 compatibility.Claude Paroz
Thanks Vinay Sajip for the support of his django3 branch and Jannis Leidel for the review.
2012-04-29Fixed #18013 -- Use the new 'as' syntax for exceptions.Claude Paroz
Thanks Clueless for the initial patch. Note that unittest has been purposely left out (external package only used by Python 2.6).
2012-01-15Added support for specifying initial values to model formsets and inline ↵Ramiro Morales
formsets. This make them consistent with the similar capability of regular formsets. Thanks to simon29 form the report and to Claude Paroz for the patch. Fixes #14574. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17373 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-10-18Remove comments referencing encryption. Django doesn't do encryption.Paul McMillan
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17012 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-10-17remove some relative imports from djangoAlex Gaynor
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17003 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-09-10Fixed #11404. Added ``FormSet.has_changed``, for consistancy with ↵Alex Gaynor
``Form.has_changed``. Thanks to michelts for the patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@16773 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-09-10Make ``Formset.__getitem__`` O(1), rather than O(n). If you override ↵Alex Gaynor
``__iter__`` you now need to also override ``__getitem__`` for consistant behavior. Thanks to Carl and Russ for the review. git-svn-id: http://code.djangoproject.com/svn/django/trunk@16770 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-09-10Fixed #15722: ensure formsets evaluate to True even if they have no forms. ↵Karen Tracey
Thanks mlavin. git-svn-id: http://code.djangoproject.com/svn/django/trunk@16756 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-08-12Fixed #16584 -- Fixed a bunch of typos in code comments. Thanks, Bernhard Essl.Jannis Leidel
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16598 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-05-01Replaced old-style with new-style decorator syntax.Jannis Leidel
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16138 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-02-21Fixed #15349 - Bound FormSet produces bound empty_formLuke Plant
Thanks to hidde-jan for the report and patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@15614 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-12-21Fixed #4976 -- Stopped humanize template tags to raise a TypeError if passed ↵Jannis Leidel
a value of ``None``. Thanks, Simon G. and Adam Vandenberg. git-svn-id: http://code.djangoproject.com/svn/django/trunk@15000 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-12-19Fixed #14655 -- Made formsets iterable. This allows a slightly more natural ↵Russell Keith-Magee
iteration API (`for form in formsets`), and allows you to easily override the form rendering order. Thanks to Kent Hauser for the suggestion and patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@14986 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-11-21Fixed #11418 -- formset.cleaned_data no longer raises AttributeError when ↵Honza Král
is_valid is True. Thanks mlavin! This also introduces a slightly backwards-incompatible change in FormSet's behavior, see the release docs for details. git-svn-id: http://code.djangoproject.com/svn/django/trunk@14667 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-10-18Fixed #12074 -- Adding .as_p and as_ul methods to FormSet. Thanks ↵Honza Král
arthurdebert and dpn for the patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@14250 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-08-06Fixed #12746 -- Updated sorting calls to use 'key' instead of 'cmp'. This ↵Russell Keith-Magee
will be slightly faster in certain circumstances, but more importantly, is a required step for migration to Python 3. Thanks to Martin van Loewis for the patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@13509 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-03-27Fixed #13023 - Removed ambiguity with regard to the max_num option of ↵Jannis Leidel
formsets and as a result of admin inlines. Thanks to Gabriel Hurley for the patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12872 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-03-12Fixed #11801 -- Corrected form validation to ensure you can still get ↵Russell Keith-Magee
deleted_forms and ordered_forms when a form that is being deleted doesn't validate. Thanks to dantallis for the report and patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12771 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-02-23Fixed #12878. Formset-wide errors are now rendered properly as html.Joseph Kocherhans
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12548 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-02-01Fixed #12692 - Properly handle the extra clause of admin inline formsets. ↵Jannis Leidel
Also fixes #12703, second error. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12369 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-01-26Fixed #12508 - Added ability to dynamically add inlines in the admin app.Jannis Leidel
Refs #13. Also introduces an ``empty_form`` attribute on formsets to make it easier to implement dynamic forms. Many thanks to Zain Memon for the initial patch from his Summer of Code 2009 project, Stanislaus Madueke for his django-dynamic-formset app and all the other people helping out. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12297 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-01-05Merged soc2009/model-validation to trunk. Thanks, Honza!Joseph Kocherhans
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12098 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2009-04-28Fixed #10082 -- Modified BaseFormSet so that ordering checks work when the ↵Russell Keith-Magee
formset is empty. Thanks to Petr Marhoun for the report and test case, and bmathieu for the fix. git-svn-id: http://code.djangoproject.com/svn/django/trunk@10643 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2009-03-31Forms in model formsets and inline formsets can now be deleted even if they ↵Joseph Kocherhans
don't validate. Related to #9587. git-svn-id: http://code.djangoproject.com/svn/django/trunk@10283 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2009-03-30Fixed #9587. Formset.is_valid() now returns True if an invalid form is ↵Joseph Kocherhans
marked for deletion. Thanks for the test and intial patch, kratorius. Note that this leaves the form and formset errors alone. Those forms still have errors, it's just that it doesn't matter that they're invalid in the context of the formset and deletion. Also fixed #9665 while I was in there. Thanks, mark_hildreth. git-svn-id: http://code.djangoproject.com/svn/django/trunk@10206 bcc190cf-cafb-0310-a4f2-bffc1f526a37