Kholid Fuadi
b8b776aabe
Fixed typo in django/forms/utils.py docstring.
2015-09-14 08:49:15 -04:00
Dražen Odobašić
b1e33ceced
Fixed #23395 -- Limited line lengths to 119 characters.
2015-09-12 11:40:50 -04:00
Keryn Knight
3c5862ccb0
Fixed #24706 -- Made ModelForm._post_clean() handle a ValidationError raised when constructing the model instance.
...
Thanks Loïc Bistuer for review and advice.
2015-09-07 14:36:39 -04:00
Tim Graham
97ac77e544
Removed BaseForm._raw_value().
...
Unused since efb0100ee6
.
2015-08-21 12:14:54 -04:00
Tim Graham
8656cfc4e0
Removed forms.models.save_instance() function.
...
As of b11564fd36
it's no longer
used elsewhere in Django and it isn't a documented public API.
Thanks Simon Charette for review.
2015-08-07 08:18:09 -04:00
Tim Graham
f2b665f886
Fixed #25241 -- Corrected ModelForm.save() error message when saving invalid form with UUIDField pk.
2015-08-07 07:44:59 -04:00
Curtis Maloney
c6c00fbfbb
Used @cached_property for BaseForm.changed_data.
2015-08-04 07:12:28 -04:00
Edward Henderson
f8cc464452
Fixed #16501 -- Added an allow_unicode parameter to SlugField.
...
Thanks Flavio Curella and Berker Peksag for the initial patch.
2015-07-17 13:48:58 -04:00
Claude Paroz
1ef4aeab40
Fixed #25078 -- Added support for disabled form fields
...
Thanks Keryn Knight and Tim Graham for the reviews.
2015-07-16 19:36:56 +02:00
George Brocklehurst
48af591b2d
Fixed #25124 -- Eased customization of SelectDateWidget subwidget.
2015-07-15 10:21:39 -04:00
Eric Carrillo
8ee6a3f1a8
Fixed #25085 -- Overrode Select widget's __deepcopy__()
2015-07-14 11:56:08 -04:00
Simon Litchfield
0ffa3943fb
Fixed #25097 -- Added BaseModelFormSet.delete_existing() hook.
2015-07-14 09:05:44 -04:00
Curtis
11cac1bd8e
Fixed #4960 -- Added "strip" option to CharField
2015-07-01 17:47:05 -04:00
Jason Hoos
a50b66da30
Fixed #24958 -- Fixed inline forms using UUID-PK parents with auto-PK children.
2015-06-26 09:09:09 -04:00
Tim Graham
aaacaeb096
Renamed RemovedInDjangoXYWarnings for new roadmap.
...
Forwardport of ae1d663b79
from stable/1.8.x plus more.
2015-06-24 16:08:20 -04:00
Andriy Sokolovskiy
cf6ce279c7
Fixed #24948 -- Fixed crash when uploading bitmap images in forms.ImageField
2015-06-16 14:37:58 -04:00
TMFGravyHands
339c01fb75
Allowed easier extendability of ChoiceFieldRenderer.
2015-06-11 10:15:52 -04:00
Matthew Schinckel
bbff3147f2
Made flatatt docstring match reality
...
The spirit of the docstring was correct, but referred to an outdated version of the function.
2015-06-08 13:57:25 +02:00
Markus Amalthea Magnuson
1884bf8e8e
Fixed #12437 -- Added css_classes to Form._html_output()
2015-06-06 19:23:06 -04:00
Russell Keith-Magee
5c35b4a8c9
Added release notes for feature added in fe21fb81
2015-06-05 11:42:58 +01:00
Russell Keith-Magee
fe21fb810a
Merge pull request #4757 from sergei-maertens/ticket_18166
...
Fixed #18166 -- Added ability to pass kwargs to the form constructor in a formset.
2015-06-05 11:10:28 +01:00
Alasdair Nicol
5987b3c46d
Removed comment from Form.changed_data; refs #24191
2015-06-04 13:51:26 -04:00
Sergei Maertens
238e2ac369
Fixed #18166 -- Added form_kwargs support to formsets.
...
By specifying form_kwargs when instantiating the formset, or overriding
the `get_form_kwargs` method on a formset class, you can pass extra
keyword arguments to the underlying `Form` instances.
Includes tests and documentation update.
2015-06-04 15:13:55 +02:00
Paweł Marczewski
4df7e8483b
Fixed #24788 -- Allowed Forms to specify a prefix at the class level.
2015-05-25 20:23:31 -04:00
Piotr Jakimiak
4157c502a5
Removed unnecessary arguments in .get method calls
2015-05-13 20:51:18 +02:00
Peter Schmidt
681df1aeaf
Fixed #24771 -- Simplified ModelForm._post_clean()
...
This code added in 45e049937d
is no longer necessary to pass the model_formsets_regress tests
as of 5e2c4a4bd1
.
2015-05-08 12:11:10 -04:00
wdmgsm
4dcc649341
Fixed #24497 -- Added Widget.supports_microseconds attribute
2015-05-06 07:13:00 -04:00
Antonio Garcia-Dominguez
5c412dd8a7
Fixes #24727 -- Prevented ClearableFileInput from masking exceptions on Python 2
2015-05-04 09:44:18 -04:00
Luis Del Giudice
69ddc1b3da
Fixed #24693 -- Added label and label_lower property to Model._meta
2015-05-02 16:58:18 +02:00
Curtis Maloney
14ecbd02a3
Removed cases of six.iter* wrapped in a list()
...
There's absolutely no advantage [and a mild performance hit] to using six.iter*
in these cases.
2015-04-18 23:29:29 +10:00
Moritz Sichert
1f2abf784a
Fixed #24469 -- Refined escaping of Django's form elements in non-Django templates.
2015-03-27 19:46:20 -04:00
Anssi Kääriäinen
8f30556329
Renamed Field.rel attribute to remote_field
...
Field.rel is now deprecated. Rel objects have now also remote_field
attribute. This means that self == self.remote_field.remote_field.
In addition, made the Rel objects a bit more like Field objects. Still,
marked ManyToManyFields as null=True.
2015-03-25 08:16:12 -04:00
Moritz Sichert
6bff343989
Refs #24469 -- Fixed escaping of forms, fields, and media in non-Django templates.
2015-03-18 09:11:01 -04:00
Thomas Tanner
28986da4ca
Fixed #5986 -- Added ability to customize order of Form fields
2015-03-16 09:12:57 -04:00
Claude Paroz
8714403614
Fixed #24428 -- Fixed has_changed for fields with coercion
...
Thanks Carsten Fuchs for the report.
2015-03-05 09:00:13 +01:00
Claude Paroz
4b8979e477
Fixed #17401 -- Made SelectDateWidget.render reflect wrong value
...
Thanks Marcin Wrobel for the initial patch.
2015-03-01 21:37:52 +01:00
Jon Dufresne
3b966c2b73
Fixed #24229 -- Changed IntegerField to clean floats representing integers
2015-02-27 12:23:21 +01:00
Michael Angeletti
65441bbdb0
Fixed #24391 -- Made BoundField.value() cache callable values.
2015-02-24 19:50:55 -05:00
Stanislas Guerra
4c2f546b55
Fixed #24395 -- Ensured inline ModelsForms have an updated related instance.
2015-02-24 11:49:00 -05:00
Tim Graham
1306cd1e8a
Fixed #24377 -- Fixed model inline formsets with primary key's that have defaults.
2015-02-23 08:44:27 -05:00
Michael Angeletti
49647bec6e
Added missing return value to DurationField.prepare_value(); refs #24339 .
2015-02-14 18:38:50 -05:00
Michael Angeletti
8a21d25033
Fixed #24339 -- Fixed crash with empty DurationField form field.
2015-02-14 07:37:18 -05:00
Loic Bistuer
00a889167f
Fixed #24295 -- Allowed ModelForm meta to specify form field classes.
...
Thanks Carl Meyer and Markus Holtermann for the reviews.
2015-02-13 19:13:05 +07:00
Tim Graham
0ed7d15563
Sorted imports with isort; refs #23860 .
2015-02-06 08:16:28 -05:00
Tim Graham
bbe28496d3
Removed old import aliases.
2015-02-05 19:37:01 -05:00
Loic Bistuer
728b6fd9ca
Fixed #24219 -- Moved SelectDateWidget together with the other widgets
...
and deprecated django.forms.extras.
Thanks Berker Peksag and Tim Graham for the reviews.
2015-01-27 22:40:02 +07:00
Adam Taylor
039465a6a7
Fixed typos in code comments.
2015-01-20 12:18:03 -05:00
Tim Graham
33457cd3b0
Removed IPAddressField per deprecation timeline; refs #20439 .
2015-01-19 11:12:57 -05:00
Tim Graham
9704b0a82e
Removed forms.forms.get_declared_fields() per deprecation timeline; refs #19617 .
2015-01-18 15:55:01 -05:00
Tim Graham
714277cb4c
Removed support for SplitDateTimeWidget with DateTimeField per deprecation timeline.
...
refs #8898
2015-01-17 18:49:44 -05:00
Tim Graham
2b4ca2ec29
Removed unused imports.
2015-01-17 14:42:51 -05:00
Tim Graham
2788c46d46
Removed Multiple/ModelChoiceField cache_choices option; refs #22838 .
2015-01-17 13:48:46 -05:00
Tim Graham
37b7776a01
Removed django.utils.datastructures.MergeDict per deprecation timeline; refs #18659 .
2015-01-17 08:13:36 -05:00
Tim Graham
9ce36512fa
Removed backwards compatibility shims for "util" modules per deprecation timeline.
...
refs #17627 .
2015-01-17 07:40:12 -05:00
Yang Liu
3f9ec12d9c
Fixed #23712 -- Fixed KeyError with BaseForm._html_output()
2015-01-15 20:19:53 -05:00
Tim Graham
baf2542c4f
Fixed DoS possibility in ModelMultipleChoiceField.
...
This is a security fix. Disclosure following shortly.
Thanks Keryn Knight for the report and initial patch.
2015-01-13 13:03:06 -05:00
Josh Schneier
3844ccc958
Fixed #24138 -- Added modelform_factory to __all__.
2015-01-12 17:44:06 -05:00
Daniel Pyrathon
fb48eb0581
Fixed #12663 -- Formalized the Model._meta API for retrieving fields.
...
Thanks to Russell Keith-Magee for mentoring this Google Summer of
Code 2014 project and everyone else who helped with the patch!
2015-01-06 19:25:12 -05:00
Anssi Kääriäinen
f233bf47dd
Fixed #21414 -- Removed RelatedObject and deprecated Field.related.
2014-12-23 10:54:25 -05:00
Marc Tamlyn
57554442fe
Fixed #2443 -- Added DurationField.
...
A field for storing periods of time - modeled in Python by timedelta. It
is stored in the native interval data type on PostgreSQL and as a bigint
of microseconds on other backends.
Also includes significant changes to the internals of time related maths
in expressions, including the removal of DateModifierNode.
Thanks to Tim and Josh in particular for reviews.
2014-12-20 18:28:29 +00:00
Michael Hall
895dc880eb
Fixed #23812 -- Changed django.utils.six.moves.xrange imports to range
2014-12-13 12:45:58 -05:00
Grzegorz Slusarek
0dea81cd6d
Fixed #23674 -- Fixed a crash when a MultiValueField has invalid data.
2014-12-12 08:47:21 -05:00
Jon Dufresne
4468c08d70
Fixed #23968 -- Replaced list comprehension with generators and dict comprehension
2014-12-08 07:58:23 -05:00
Berker Peksag
560b4207b1
Removed redundant numbered parameters from str.format().
...
Since Python 2.7 and 3.1, "{0} {1}" is equivalent to "{} {}".
2014-12-03 14:27:38 -05:00
Simon Charette
a7c3d0f288
Fixed typo in forms/models.py comment.
2014-11-21 15:59:09 -05:00
Tim Heap
5b17dcd8ef
Fixed #23883 -- Stopped flatatt modifying its argument
2014-11-21 09:45:08 +01:00
Baptiste Mispelon
bfb11b9562
Fixed #23795 -- Fixed a regression in custom form fields
...
Custom form fields having a `queryset` attribute but no
`limit_choices_to` could no longer be used in ModelForms.
Refs #2445 .
Thanks to artscoop for the report.
2014-11-12 22:38:18 +01:00
Peter Inglesby
74e1980cf9
Fixed #13181 -- Added support for callable choices to forms.ChoiceField
...
Thanks vanschelven and expleo for the initial patch.
2014-11-04 11:23:58 -05:00
Tim Graham
984a57a9c9
Removed some commented code in the forms Media class.
2014-10-27 08:21:37 -04:00
Thomas Chaumeny
fa534b92dd
Fixed #23623 -- Reduced memory consumption when generating ModelChoiceField choices
2014-10-10 09:50:02 -04:00
Loic Bistuer
ec2fd02bb3
Fixed #23594 -- Fixed deepcopy on ErrorList.
...
Thanks Troy Grosfield for the report and Tim Graham for the tests.
2014-10-07 00:09:55 +07:00
Marc Tamlyn
ed7821231b
Fixed #19463 -- Added UUIDField
...
Uses native support in postgres, and char(32) on other backends.
2014-09-16 10:08:09 +01:00
Petras Zdanavičius
f7eee04ebe
Fixed #23451 -- Fixed typo in inlineformset_factory() error message.
2014-09-08 17:22:23 -04:00
Tim Graham
1101467ce0
Limited lines to 119 characters in django/
...
refs #23395 .
2014-09-05 09:22:16 -04:00
Vlastimil Zíma
e622caaa85
Fixed #21201 -- Improved customization of ClearableFileInput.
2014-08-29 09:40:08 -04:00
areski
a6691e5dcf
Fixed #23167 -- Added BaseForm.__repr__()
...
Thanks Keryn Knight for the idea.
2014-08-22 15:55:56 -04:00
Gabriel Muñumel
deed00c0d8
Fixed #23162 -- Renamed forms.Field._has_changed() to has_changed().
2014-08-15 08:14:45 -04:00
Vincent-Vega
5e06fa1469
Fixed #22745 -- Prevented reevaluation of ModelChoiceField's queryset when accesssing BoundField's attrs.
...
Thanks Christian Schmitt for review.
2014-08-04 07:47:37 -04:00
Tim Graham
399cf303cb
Corrected a comment in forms/forms.py; refs #16612 .
2014-08-04 06:57:09 -04:00
Tim Graham
0f2ceee025
Fixed #23151 -- Deprecated RegexField.error_message.
...
Thanks Baptiste Mispelon for the suggestion.
2014-08-03 11:21:01 -04:00
Baptiste Mispelon
de0a22be35
Fixed two typos in docstrings.
2014-08-02 15:14:13 +02:00
Petras Zdanavičius
8b7347220f
Fixed #23103 -- Annotated ImageField file with image and content_type attributes.
...
Thanks Jeremy Dunck for the suggestion and Nick Sanford for review.
2014-08-01 09:30:58 -04:00
Niclas Olofsson
cdc25ac474
Fixed #22808 -- Made ModelMultipleChoiceField validation more robust to invalid data types..
...
Thanks Mattias Lindvall for the report and inital patch.
2014-07-31 15:29:46 -04:00
Kit La Touche
17e75d03f9
Fixed #23129 -- Added 'true' and 'false' to `NullBooleanField`.
...
JavaScript serializations of forms will sometimes render the boolean
values as the strings 'true' and 'false', in lower case. Rather than
repeat boilerplate in the JavaScript to circumvent this, it seems
reasonable to allow Django to understand the lower-case versions of the
booleans.
2014-07-29 19:55:55 -04:00
Simon Charette
80708ac772
Fixed #23113 -- ChoiceInput.render should take specified attrs into account.
...
Thanks to Tim Graham for the review.
2014-07-28 10:01:07 -04:00
Tim Graham
5e2c4a4bd1
Fixed #13794 -- Fixed to_field usage in BaseInlineFormSet.
...
Thanks sebastien at clarisys.fr for the report and gautier
for the patch.
2014-07-09 07:59:20 -04:00
Daniel Hahler
67f9f385aa
Fixed various minor doc typos / references.
2014-07-05 20:26:26 -04:00
Claude Paroz
dd9a23d5cf
Fixed #22950 -- Eased markup customization for choice field rendering
...
Thanks Patrick Robertson for the report.
2014-07-05 13:36:49 +02:00
Claude Paroz
9209049211
Ensured bound field renders as unicode safe data
...
Refs #22950 .
2014-07-05 11:42:27 +02:00
Claude Paroz
cecbb71312
Prevented evaluation of a possible lazy message
...
As far as possible, message evaluation should not happen in field
__init__ (often run at import time).
2014-06-21 11:21:35 +02:00
Marc Tamlyn
2764146586
Fixed #22838 -- Deprecated ModelChoiceField.cache_choices.
...
Undocumented, untested and probably not even useful feature.
2014-06-20 20:29:46 +01:00
Anubhav Joshi
45e049937d
Fixed #13776 -- Fixed ModelForm.is_valid() exception with non-nullable FK and blank=True.
...
Thanks peterbe for the report.
2014-06-04 07:57:19 -04:00
gyx1000
7e2c87809c
Fixed #22684 -- Amended SelectDateWidget.empty_label to accept a tuple of values.
...
Thanks danielsamuels for the report
2014-06-04 07:23:25 -04:00
Nick Presta
11f0899bbe
Fixed #11776 -- Added CSS class for non-field/top of form errors.
...
Thanks Daniel Pope for the suggestion.
2014-06-02 15:22:15 -04:00
Alex Gaynor
1dcc603eff
Fixed several typos in Django
2014-05-28 17:39:14 -07:00
Guillaume Pannatier
32586b0ba4
Fixed #22684 -- Added `empty_label` option on `django.forms.extras.widets.SelectDateWidget`
...
Thanks danielsamuels for the report
2014-05-28 13:23:28 -04:00
Marc Tamlyn
9fb0f5dddc
Fixed #22510 -- Harden field removal to only None.
...
Refs #8620 .
If we allow any value to remove form fields then we get name clashes
with method names, media classes etc. There was a backwards
incompatibility introduced meaning ModelForm subclasses with declared
fields called media or clean would lose those fields.
Field removal is now only permitted by using the sentinel value None.
The docs have been slightly reworded to refer to removal of fields
rather than shadowing.
Thanks to gcbirzan for the report and initial patch, and several of the
core team for opinions.
2014-05-24 13:10:50 +01:00
Stephen Burrows
d64f192df1
Fixed #22628 -- Took initial forms into account when combining FormSet.min_num and FormSet.extra.
...
Forwardport of 79f15ab1ef
from stable/1.7.x
2014-05-16 06:38:24 -04:00
Anders Steinlein
4ef10f245a
Fixed #17642 -- Added min_num support to modelformsets, inlines, and the admin.
...
Thanks Stephen Burrows for work on the patch as well.
Forwardport of 2914f66983
from stable/1.7.x
2014-05-15 07:25:35 -04:00
Julen Ruiz Aizpuru
5eb81ce445
Fixed #22533 -- Added label_suffix parameter to form fields.
...
Fields can now receive the `label_suffix` attribute, which will override
a form's `label_suffix`.
This enhances the possibility to customize form's `label_suffix`, allowing
to use such customizations while using shortcuts such as
`{{ form.as_p }}`.
Note that the field's own customization can be overridden at runtime by
using the `label_prefix` parameter to `BoundField.label_tag()`.
Refs #18134 .
2014-05-13 09:09:33 -04:00
Stephen Burrows
a5de0df58b
Fixed #22502 -- Fixed microseconds/default/form interaction
...
Made explicit lack of microsecond handling by built-in datetime form
fields. Used that explicitness to appropriately nix microsecond
values in bound fields. Thanks Claude Paroz for the review.
2014-05-10 10:56:39 +02:00
Ben Davis
df60db0e78
Fixed #22570 -- Made Form.__getitem__ KeyError more descriptive.
2014-05-05 20:01:15 -04:00
Alex Gaynor
2bcb8bfc8d
Fix many many typos in comments throughout the codebase
2014-04-26 10:18:45 -07:00
Tomasz Wysocki
ea5a984704
Refactored some code in SelectDateWidget.
2014-04-10 13:03:23 -04:00
Tomasz Wysocki
78623d253b
Removed casting to bool just before negation.
2014-04-07 08:30:05 -04:00
Alex Gaynor
778ce245dd
Corrected many style guide violations that the newest version of flake8 catches
2014-03-30 12:11:05 -07:00
Chris Beaven
b077ba7ac1
Add a useful stacklevel to some RemovedInDjango19Warnings
2014-03-27 15:44:52 +13:00
Claude Paroz
d320863878
Fixed #22114 -- Stopped adding trailing slashes in URLField.to_python
...
Thanks coredumperror at gmail.com for the report and Tim Graham
for the review.
2014-03-26 18:10:58 +01:00
Anubhav Joshi
416a858023
Fixed #17922 -- Added required_css_class to form label.
...
Thanks hanson2010 for the suggestion.
2014-03-24 08:11:54 -04:00
Loic Bistuer
7ac8380799
Fixed #22318 -- Added Form.has_error() to easily check if a given error has happened.
2014-03-24 07:21:32 -04:00
Loic Bistuer
e61d99d96d
Fixed #20684 -- Added support for HTML5 boolean attributes to form widgets.
2014-03-22 14:28:12 -04:00
Tim Graham
ee4edb1eda
Made ModelForms raise ImproperlyConfigured if the list of fields is not specified.
...
Also applies to modelform(set)_factory and generic model views.
refs #19733 .
2014-03-22 07:56:48 -04:00
Tim Graham
d74e33eb0e
Removed backwards compatibility code to call field.widget._has_changed()
...
This logic should be moved to field._has_changed() as described
in ebb504db69
- refs #16612 .
2014-03-21 19:34:21 -04:00
Tim Graham
306283bf35
Removed warning for Widget.is_hidden property.
...
refs #22137 .
2014-03-21 19:25:54 -04:00
Tim Graham
e80de93af6
Removed hard-coded help_text for ManyToManyFields that use a SelectMultiple widget
...
Per deprecation timeline; refs #9321 .
2014-03-21 19:10:07 -04:00
Tim Graham
797d742662
Removed django.forms.widgets.RadioInput per deprecation timeline.
...
refs #4592 .
2014-03-21 11:18:04 -04:00
Tim Graham
4965a77407
Removed PIL compatability layer per deprecation timeline.
...
refs #19934 .
2014-03-21 10:54:53 -04:00
Claude Paroz
5a976b4bec
Fixed #22245 -- Avoided widget overwrite in forms.IntegerField subclasses
...
Thanks Jeroen Pulles for the report and Simon Charette for the review.
2014-03-13 16:58:14 +01:00
Claude Paroz
210d0489c5
Fixed #21188 -- Introduced subclasses for to-be-removed-in-django-XX warnings
...
Thanks Anssi Kääriäinen for the idea and Simon Charette for the
review.
2014-03-08 09:57:40 +01:00
Loic Bistuer
34236efc5e
Reworked ErrorDict.as_json() to prevent unnecessary serialization/deserialization step.
...
Thanks @apollo13 for the suggestion. Refs #17413 .
2014-03-06 18:33:58 +01:00
Chris Wilson
95c74b9d69
Fixed #22206 -- Passed models.TextField.max_length to forms.CharField.maxlength
2014-03-05 20:09:28 +01:00
Rodolfo Carvalho
0d91225892
Fixed many typos in comments and docstrings.
...
Thanks Piotr Kasprzyk for help with the patch.
2014-03-03 07:38:09 -05:00
Claude Paroz
a19f0d0c1e
Fixed #22137 -- Made Widget.is_hidden a read-only property
...
Thanks django at patjack.co.uk for the report and the review.
2014-03-01 10:36:48 +01:00
vvojvoda
c23b3717be
Fixed #21962 -- Added escape_html flag to ErrorDict.as_json()
2014-02-28 07:05:55 -05:00
Claude Paroz
9f76d0d351
Fixed #22136 -- Updated comment for Textarea widget
...
Thanks Aymeric Augustin for the suggestion.
2014-02-27 19:38:37 +01:00
Claude Paroz
cb844497d0
Fixed #22097 -- Fixed change detection for TypedChoiceField
...
Thanks Igor Mitrenko for the report.
2014-02-20 13:40:42 +01:00
Christopher Adams
eefc88feef
Fixed #2445 -- Allowed limit_choices_to attribute to be a callable.
...
ForeignKey or ManyToManyField attribute ``limit_choices_to`` can now
be a callable that returns either a ``Q`` object or a dict.
Thanks michael at actrix.gen.nz for the original suggestion.
2014-02-11 14:05:12 -05:00
Loic Bistuer
8847a0c601
Fixed #16192 -- Made unique error messages in ModelForm customizable.
...
Overriding the error messages now works for both unique fields, unique_together
and unique_for_date.
This patch changed the overriding logic to allow customizing NON_FIELD_ERRORS
since previously only fields' errors were customizable.
Refs #20199 .
Thanks leahculver for the suggestion.
2014-02-08 04:59:09 -05:00
Russell Keith-Magee
d818e0c9b2
Fixed #16905 -- Added extensible checks (nee validation) framework
...
This is the result of Christopher Medrela's 2013 Summer of Code project.
Thanks also to Preston Holmes, Tim Graham, Anssi Kääriäinen, Florian
Apolloner, and Alex Gaynor for review notes along the way.
Also: Fixes #8579 , fixes #3055 , fixes #19844 .
2014-01-20 10:45:21 +08:00
Claude Paroz
0179852d7f
Fixed #8898 -- Obsoleted SplitDateTimeWidget usage with DateTimeField
...
Thanks Tim Graham for the review.
2014-01-11 15:50:34 +01:00
Claude Paroz
18374c1d8c
Fixed #21752 -- Prevented custom widget step attribute to be overwritten
...
Thanks orcein at gmail.com for the report.
2014-01-11 14:08:04 +01:00
Marc Sibson
81bb8d1220
Fixed docstring typo in django/forms/forms.py.
2014-01-10 08:33:30 -05:00
Loic Bistuer
2fd7fc134c
Refs #17413 -- Added isinstance backward compatibility on ErrorList.
2013-12-18 08:59:53 -05:00
Artur Barseghyan
fe1389e911
Removed duplicated `TimeField` in __all__.
2013-12-16 17:52:37 -05:00
Loic Bistuer
3ce9829b61
Fixed #17413 -- Serialization of form errors along with all metadata.
2013-12-16 16:33:28 -05:00
Loic Bistuer
6685713869
Fixed E127 pep8 warnings.
2013-12-14 11:59:15 -05:00
Loic Bistuer
a2814846ca
Fixed E124 pep8 warnings.
2013-12-10 15:12:48 -05:00
Claude Paroz
8a9c8bb907
Fixed #21568 -- Added missing ModelMultipleChoiceField to_python method
...
Thanks dibrovsd at gmail.com for the report and Simon Charette
for the review.
2013-12-07 10:14:22 +01:00
Loic Bistuer
f563c339ca
Fixed #20867 -- Added the Form.add_error() method.
...
Refs #20199 #16986 .
Thanks @akaariai, @bmispelon, @mjtamlyn, @timgraham for the reviews.
2013-11-30 01:00:53 +07:00
Christopher Medrela
7477a4ffde
Fixed E125 pep8 warnings
2013-11-28 08:50:11 -05:00
Loic Bistuer
1c7a83ee8e
Fixed #21489 -- Make formsets directly importable from django.forms.
2013-11-25 19:16:19 -05:00
Claude Paroz
fafb6cf049
Fixed #21472 -- Fixed inline formsets display when parent pk is 0
...
Thanks agale031176@gmail.com for the report.
2013-11-20 21:36:20 +01:00
Claude Paroz
a0f3eeccf3
Fixed #21397 -- Re-added flexibility to TypedChoiceField coercion
...
Thanks Elec for the report and Simon Charette for the review.
2013-11-18 18:24:56 +01:00
Anssi Kääriäinen
326539f6a4
Fixed a regression caused by fix for #21428
...
On Python 3 sorting Fields mixed with GenericForeignKeys doesn't work
as GenericForeignKey isn't a subclass of django.db.models.fields.Field.
Refs #21428 .
2013-11-16 20:54:36 +02:00
Anssi Kääriäinen
0e079e4331
Fixed #21428 -- editable GenericRelation regression
...
The GenericRelation refactoring removed GenericRelations from
model._meta.many_to_many. This had the side effect of disallowing
editable GenericRelations in ModelForms. Editable GenericRelations
aren't officially supported, but if we don't fix this we don't offer any
upgrade path for those who used the ability to set editable=True
in GenericRelation subclass.
Thanks to Trac alias joshcartme for the report and stephencmd and Loic
for working on this issue.
2013-11-16 20:07:35 +02:00
Baptiste Mispelon
5fda9c9810
Fixed #21423 -- Fixed typo in widgets.py.
2013-11-11 18:03:01 +01:00
Claude Paroz
bc21e9c0d9
Fixed #13970 -- Made SelectDateWidget use the standard widget is_required attribute
...
Thanks mitar for the report and Tim Graham for the review.
2013-11-08 16:58:17 +01:00
Alex Gaynor
c347f78cc1
Fixed all E226 violations
2013-11-03 10:08:55 -08:00
Alex Gaynor
7288e1b02b
Merge pull request #1852 from jasonamyers/cleanup/PEP8
...
Cleanup/pep8 tests
2013-11-03 09:51:49 -08:00
Alex Gaynor
91078f5669
Merge pull request #1861 from milmazz/E251
...
Fixed flake8 E251 violations
2013-11-03 09:42:31 -08:00
Jason Myers
4f151da1e5
Merging in master
...
Signed-off-by: Jason Myers <jason@jasonamyers.com>
2013-11-03 07:19:25 -06:00
Jim Bailey
539e3693d4
Fixed #20849 -- ModelForms do not work well with prefetch_related.
...
model_to_dict() (used when rendering forms) queries the database
to get the list of primary keys for ManyToMany fields. This is
unnecessary if the field queryset has been prefetched, all the
keys are already in memory and can be obtained with a simple
iteration.
2013-11-03 12:27:54 +02:00
Milton Mazzarri
cbc7cbbc5b
Fixed flake8 E251 violations
2013-11-03 03:22:11 -06:00
Jason Myers
c3791463a5
Fixing E302 Errors
...
Signed-off-by: Jason Myers <jason@jasonamyers.com>
2013-11-02 23:48:47 -05:00
Alex Gaynor
fe995e6cbd
Fixed the remaining E302 violations int eh django package
2013-11-02 17:37:15 -07:00
Alex Gaynor
7548aa8ffd
More attacking E302 violators
2013-11-02 13:12:09 -07:00
Boryslav Larin
e737c009b8
Fixed flake8 E241
2013-11-02 21:45:40 +02:00
Alex Gaynor
ee48f4af99
Merge pull request #1848 from rayashmanjr/master
...
Correct flake8 violation E261
2013-11-02 12:34:34 -07:00
Ray Ashman Jr
dcfc8fa972
Correct flake8 violation E261
2013-11-02 15:27:47 -04:00
Tim Graham
36ded01527
Fixed #21302 -- Fixed unused imports and import *.
2013-11-02 15:24:56 -04:00
Anssi Kääriäinen
efb0100ee6
Fixed #14877 -- repeated deletion using formsets
...
When a formset contained deletion for an existing instance, and the
instance was already deleted, django threw an exception. A common cause for
this was resubmit of the formset.
Original patch by Trac alias olau.
In addition this commit cleaned some code in _construct_form(). This
was needed as the primary key value the user submitted wasn't converted
correctly to python value in case the primary key field was also a
related field.
2013-10-30 22:40:15 +02:00
Alex Gaynor
b35ff0d920
Fixed all the E203 violations
2013-10-26 18:27:42 -07:00
Alex Gaynor
f2d8027c9a
Fixed up some more flake8 violations (this particular violation still has many occurrences in the tests/ dir so it can't be removed from setup.cfg yet)
2013-10-26 10:50:40 -07:00
Alex Gaynor
9bf5610890
Start attacking E231 violations
2013-10-24 10:30:03 -07:00
Alasdair Nicol
c3aa2948c6
Fixed #21298 -- Fixed E301 pep8 warnings
2013-10-23 13:45:03 +01:00
Tim Graham
ae48d77ef8
Fixed E225 pep8 warnings.
2013-10-23 06:09:29 -04:00
Tim Graham
8e2029f8dd
Removed import * in tests.
...
Thanks to flake8 path/to/file.py | awk -F ' ' '{ print $5 }' | sort | uniq
2013-10-22 08:32:01 -04:00
Alasdair Nicol
b289fcf1bf
Fixed #21288 -- Fixed E126 pep8 warnings
2013-10-21 08:31:30 -04:00
Alasdair Nicol
a800036981
Fixed #21287 -- Fixed E123 pep8 warnings
2013-10-18 10:07:39 +01:00
Alasdair Nicol
bab9123daa
Fixed #21268 -- Fixed E303 pep8 warnings
2013-10-18 01:46:24 +01:00
Alasdair Nicol
eb214452c3
Fixed #21270 -- Fixed E701 pep8 warnings
2013-10-17 12:12:40 +01:00
Loic Bistuer
b16dd1fe01
Fixed #8620 -- Updated the Form metaclass to support excluding fields by shadowing them.
2013-10-14 22:42:33 +07:00
Loic Bistuer
ac5ec7b8bc
Fixed #19617 -- Refactored Form metaclasses to support more inheritance scenarios.
...
Thanks apollo13, funkybob and mjtamlyn for the reviews.
2013-10-14 21:59:30 +07:00
Claude Paroz
00a73c1c69
Fixed #21173 -- Stopped fixing format for date-based widgets at init time
...
Thanks Marc Tamlyn for the review.
2013-10-12 18:31:19 +02:00
Tim Graham
b67ab75e82
Fixed assorted flake8 errors.
2013-10-11 07:25:14 -04:00
Tim Graham
cec11a3336
Used "is" for comparisons with None.
2013-10-10 09:35:56 -04:00
Christopher Babiak
a834bc84d8
Fixed #20931 -- Fixed select widgets nested choice rendering
...
ChoiceFieldRenderer was not rendering nested choices. Added recursion
to ChoiceFieldRenderer to take nested choices and render them as
<ul>'s.
2013-09-28 17:25:32 -07:00
Erik Romijn
1a63092981
Fixed #20439 -- Started deprecation of IPAddressField
2013-09-28 10:55:32 +02:00
Florian Apolloner
56743cf9e3
Ensured that BoundField.as_widget always returns properly localized fields.
...
This is a follow-up to #18777 which improperly converted to strings in
prepare_value and as such caused regressions like #21074 .
Refs #18777 , #21074
2013-09-21 22:54:00 +02:00
yokomizor
df27803a55
Fixed #9532 -- Added min_num and validate_min on formsets.
...
Thanks gsf for the suggestion.
2013-09-19 13:11:49 -04:00
Tim Graham
f40c82213f
Added backwards compatability shims for util modules.
...
refs #17627
2013-09-16 12:53:42 -04:00
Tim Graham
18ffdb1772
Fixed #17627 -- Renamed util.py files to utils.py
...
Thanks PaulM for the suggestion and Luke Granger-Brown and
Wiktor Kołodziej for the initial patch.
2013-09-16 12:52:05 -04:00
Tim Graham
8165c2cfd1
Improved deprecation warning for change in form boolean values.
...
refs #20684
Thanks jacob, jcd, and shai for the suggestions.
2013-09-10 14:24:34 -04:00
Tim Graham
4e96dac450
Fixed #19298 -- Added MultiValueField.__deepcopy__
...
Thanks nick.phillips at otago.ac.nz for the report.
2013-09-10 13:56:49 -04:00
e0ne
053de6131a
Fixed #5749 -- Added field_name as a key in the _html_output dict
...
Thanks SmileyChris for the suggestion.
2013-09-10 13:00:10 -04:00
Gregor MacGregor
b2b763448f
Fixed #20841 -- Added messages to NotImplementedErrors
...
Thanks joseph at vertstudios.com for the suggestion.
2013-09-10 11:09:59 -04:00
Alex Gaynor
2530735d2d
Fixed a number of flake8 errors -- particularly around unused imports and local variables
2013-09-06 21:56:40 -07:00
Daniel Langer
cc957cb16c
Fixed #4287 -- Fixed NaN and +/- Infinity handling in FloatField
...
NaN, +Inf, and -Inf are no longer valid values for FloatFields.
2013-09-06 14:56:37 -04:00
Aymeric Augustin
6a6428a36f
Took advantage of django.utils.six.moves.urllib.*.
2013-09-05 14:39:23 -05:00
Simon Charette
11cd7388f7
Fixed #20989 -- Removed useless explicit list comprehensions.
2013-08-30 10:57:51 -04:00
Tomer Chachamu
50d25a9c5a
Added SplitHiddenDateTimeWidget to django.forms.widgets.__all__
2013-08-29 14:22:04 -04:00
Tim Graham
c7d0ff0cad
Fixed #20989 -- Removed explicit list comprehension inside dict() and tuple()
...
Thanks jeroen.pulles at redslider.net for the suggestion and
helper script.
2013-08-29 12:11:03 -04:00
Loic Bistuer
da800be6dd
Fixed #20986 -- Enabled SelectDateWidget to use custom months
...
Reviewed by Trac alias MarkusH.
2013-08-28 16:39:26 +03:00
Anssi Kääriäinen
6af05e7a0f
Fixed model.__eq__ and __hash__ for no pk value cases
...
The __eq__ method now considers two instances without primary key value
equal only when they have same id(). The __hash__ method raises
TypeError for no primary key case.
Fixed #18864 , fixed #18250
Thanks to Tim Graham for docs review.
2013-08-22 17:24:07 +03:00
Claude Paroz
8cd8742981
Moved translator comment just above the target string
2013-08-22 09:52:54 +02:00
Matt Johnson
907ef9d0d1
Fixed #20555 -- Make subwidget id attribute available
...
In `BoundField.__iter__`, the widget's id attribute is now passed to
each subwidget. A new id_for_label property was added to ChoiceInput.
2013-08-13 13:23:05 -04:00
Marc Tamlyn
1c4a9bd9ad
Revert change to the default Form.clean()
...
This means it doesn't break for people who are doing
`cleaned_data = super(FooForm, self).clean()`.
2013-08-08 14:27:48 +01:00
Marc Tamlyn
fb1dd6b13a
Form.clean() does not need to return cleaned_data.
...
If it does, that will be used as the cleaned_data. The default
implementation has been changed to match this change.
2013-08-08 14:05:55 +01:00
Tai Lee
1280675834
Fixed #15511 -- Allow optional fields on ``MultiValueField` subclasses.
...
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.
2013-08-06 08:50:47 -04:00
Tim Heap
75c87e2d38
Fixed #20850 -- Added MultiWidget.needs_multipart_form
2013-08-05 10:02:28 -04:00
Curtis Maloney
07876cf02b
Deprecated SortedDict (replaced with collections.OrderedDict)
...
Thanks Loic Bistuer for the review.
2013-08-04 07:09:39 -04:00
Aleksandra Sendecka
893d8de6f5
Fixed #18777 -- Localized form fields with as_text/as_hidden
...
Thanks croldan for the report.
2013-08-02 08:41:54 -04:00
Alex Couper
1123f45511
Fixed #20649 -- Allowed blank field display to be defined in the initial list of choices.
2013-07-31 14:12:03 -04:00
Claude Paroz
5c1143910e
Removed most of absolute_import imports
...
Should be unneeded with Python 2.7 and up.
Added some unicode_literals along the way.
2013-07-29 20:28:13 +02:00
Tim Graham
8676318d2d
Fixed #20805 -- Removed an extra colon beside checkboxes in the admin.
...
Thanks CollinAnderson for the report.
2013-07-26 14:45:38 -04:00
Tim Graham
65e03a424e
Fixed #10284 -- ModelFormSet.save(commit=False) no longer deletes objects
...
Thanks laureline.guerin@ and Wedg.
2013-07-23 16:21:23 -04:00
Claude Paroz
02b0106d43
Fixed #20781 -- Fixed _has_changed regression with MultiValueField
...
Thanks Tim Graham for the report.
2013-07-22 09:06:07 +02:00
Simon Charette
415a36947c
Fixed #20765 -- Set small values of `step` using exponential notation.
...
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.
2013-07-19 23:31:15 -04:00
Claude Paroz
7557207983
Fixed #20582 -- Allowed default Form.label_suffix to be translated
...
Thanks Tim Graham for the review.
2013-07-13 16:19:16 +02:00
Claude Paroz
1116df0751
Deprecate usage of boolean value for widget attributes
...
Django 1.7 will loudly warn when widget attributes are assigned
boolean values. In Django 1.8, False will mean attribute is not
present while True will mean attribute present without value.
Refs #20684 .
2013-07-05 19:33:19 +02:00
Aymeric Augustin
acd7b34aaf
Advanced deprecation warnings for Django 1.7.
2013-06-29 18:49:37 +02:00
Claude Paroz
ef79582e86
Fixed 17478 -- Allowed queryset overriding in BaseModelFormSet init
...
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-22 09:29:37 +02:00
Simon Charette
04628e2016
Fixed #20630 -- Removed `maxlength` attribute from `NumberInput`.
...
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.
2013-06-20 10:59:41 -04:00
Aymeric Augustin
ffcf24c9ce
Removed several unused imports.
2013-06-19 17:18:40 +02:00
Baptiste Mispelon
3128f3d38d
Fixed #20618 -- Fixed regression in `BoundField.label_tag`.
2013-06-18 17:49:53 +02:00
Loic Bistuer
ee77d4b253
Fixed #20199 -- Allow ModelForm fields to override error_messages from model fields
2013-06-18 08:01:17 -04:00
Loic Bistuer
f34cfec0fa
Refactored ValidationError to allow persisting error params and error codes as the exception bubbles up
2013-06-18 08:01:17 -04:00
Baptiste Mispelon
1b7634a0d0
Fixed #20464 -- Added a `total_error_count` method on formsets.
...
Thanks to frog32 for the report and to Tim Graham for the review.
2013-06-16 15:49:30 -04:00
Loic Bistuer
9e50833e22
Fixed #20000 -- Allowed ModelForm meta overrides for label, help_text and error_messages
2013-06-13 15:06:25 -04:00
Baptiste Mispelon
dc9c359546
Fixed #20594 -- Add validation to models.SlugField.
...
Thanks carbonXT for the report.
2013-06-13 13:31:57 -04:00
Gabe Jackson
584bd14dcf
Fixed #18134 -- BoundField.label_tag now includes the form's label_suffix
...
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.
2013-06-10 14:23:15 -04:00
Stephen Burrows
e2518fdf46
Fixed #12337 - Honor ModelForm.Meta.exclude when saving ManyToManyFields.
...
Thanks margieroginski for the report.
2013-06-06 10:01:48 -04:00
Claude Paroz
571864c845
Added missing stacklevel arg in forms/models.py
2013-05-30 20:07:53 +02:00
Ramiro Morales
0fa8d43e74
Replaced `and...or...` constructs with PEP 308 conditional expressions.
2013-05-26 23:47:50 -03:00
Claude Paroz
be0bab1bb8
Fixed #11725 -- Made possible to create widget label tag without "for"
...
Thanks Denis Martinez for the report and initial patch, and
Sergey Kolosov for bringing the patch up to date.
2013-05-25 15:31:07 +02:00
Ramiro Morales
8c2fd050f8
Made fix for #9321 less buggy and more effective.
...
Don't try to be smart about building a good-looking help string
because it evaluates translations too early, simply use the same old
strategy as before. Thanks Donald Stufft for the report.
Also, actually fix the case reported by the OP by special-casing
CheckboxSelectMultiple.
Added tests.
Refs #9321 .
2013-05-23 07:49:29 -03:00
Jeroen Dekkers
d0788c2770
Fixed #18709 -- Check if initial_value is a callable
...
In _get_changed_data, check if initial_value is a callable and call it
if it is.
2013-05-22 01:05:22 +02:00
Ramiro Morales
4ba1c2e785
Fixed #9321 -- Deprecated hard-coding of help text in model ManyToManyField fields.
...
This is backward incompatible for custom form field/widgets that rely
on the hard-coded 'Hold down "Control", or "Command" on a Mac, to select
more than one.' sentence.
Application that use standard model form fields and widgets aren't
affected but need to start handling these help texts by themselves
before Django 1.8.
For more details, see the related release notes and deprecation timeline
sections added with this commit.
2013-05-20 16:29:51 -03:00
Ryan Kaskel
4280217f31
Fixed #20403 -- Ignore forms marked for deletion when validating max_num.
2013-05-20 12:13:21 -04:00
Andrew Godwin
04e0fc029f
Merge pull request #1094 from senko/ticket_11160
...
Fixed #11160 : Formset non_form_errors returns ErrorList() if is_valid is not called
2013-05-19 03:56:14 -07:00
Tome Cvitan
caf56ad174
Fixed #20440 -- Ensured CharField's max_length/min_length are integers
2013-05-18 22:30:24 +02:00
Aymeric Augustin
7d050e8e9c
Merge pull request #1113 from denibertovic/master
...
Fixed #18761 -- Added whitespace stripping to URLField and SlugField.
2013-05-18 07:11:11 -07:00
Deni Bertovic
186ec21a3d
Added stripping of whitespace for SlugField and URLField
2013-05-18 16:06:08 +02:00
Erik Romijn
1c1695668f
Fixed argument order for localized_fields to ensure backwards compatibility
2013-05-18 14:38:45 +02:00
Erik Romijn
756b81dbd1
Fixed #13546 -- Easier handling of localize field options in ModelForm
2013-05-18 14:13:00 +02:00
Senko Rasic
493aca453a
Fixed #11160 - Ensure full_clean is called from non_form_errors
...
Updated FormSet.non_form_errors() to ensure full_clean() has
been called before returning the errors.
2013-05-18 13:44:27 +02:00
Aymeric Augustin
9c487b5974
Replaced an antiquated pattern.
...
Thanks Lennart Regebro for pointing it out.
2013-05-17 18:08:58 +02:00
Daniel Lindsley
33793f7c3e
Fixed #19934 - Use of Pillow is now preferred over PIL.
...
This starts the deprecation period for PIL (support to end in 1.8).
2013-05-14 19:32:04 -07:00
Luke Plant
f026a519ae
Fixed #19733 - deprecated ModelForms without 'fields' or 'exclude', and 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.
2013-05-09 16:44:36 +01:00
Claude Paroz
f9f0e8da4d
Used ngettext in a formsets error message
...
Several languages will distinctly translate '%d or fewer forms'
depending on the variable.
2013-05-04 10:18:04 +02:00
Claude Paroz
be9ae693c4
Fixed #17840 -- Generalized named placeholders in form error messages
...
Also fixed plural messages for DecimalField.
2013-04-13 18:55:50 +02:00
Baptiste Mispelon
9ac4dbd7b5
Fixed #4592 : Made CheckboxSelectMultiple more like RadioSelect
...
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.
2013-04-13 16:37:27 +02:00
Baptiste Mispelon
c4186c2fec
Fixed #4117 : Apply id attribute to the outer <ul> of RadioSelect
2013-04-13 12:23:25 +02:00
Baptiste Mispelon
844fbc85c1
Fixed #19874 : Apply id attribute to the outer <ul> of CheckboxSelectMultiple
2013-04-13 11:09:47 +02:00
Baptiste Mispelon
ab686022f8
Fixed #20211 : Document backwards-incompatible change in BoundField.label_tag
...
Also cleaned up label escaping and consolidated the test suite regarding
label_tag.
2013-04-12 10:17:17 +02:00
Baptiste Mispelon
f9dc1379b8
Fix #15126 : Better error message when passing invalid options to ModelForm.Meta.
2013-04-07 19:08:53 +02:00
Gavin Wahl
ec04fd1344
Fixed spelling errors
2013-03-28 11:16:53 -06:00
Claude Paroz
066bf42675
Removed forced typecasting of help_text/label Field arguments
...
In any case, setting those variables to non-ascii utf-8 bytestrings
is now considered a programming error.
2013-03-25 21:38:21 +01:00
Anssi Kääriäinen
97774429ae
Fixed #19385 again, now with real code changes
...
The commit of 266de5f9ae
included only
tests, this time also code changes included...
2013-03-24 18:40:40 +02:00
Andrew Gorcester
f9ab543720
Fixed #20084 -- Provided option to validate formset max_num on server.
...
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-03-21 01:27:24 -07:00