Commit Graph

929 Commits

Author SHA1 Message Date
Matthias Kestenholz 231b513926 Fixed #30179 -- Fixed form Media merging when pairwise merging is insufficient.
Thanks gasman for the tests, and codingjoe and timgraham for the review.
2019-02-27 16:39:17 -05:00
Matthias Kestenholz 959d0c078a Fixed #30153 -- Fixed incorrect form Media asset ordering after three way merge.
Delaying merging assets as long as possible avoids introducing
incorrect relative orderings that cause a broken final result.
2019-02-09 09:38:52 -05:00
Sergey Fedoseev 1933e56eca Removed uneeded generator expressions and list comprehensions. 2019-02-09 09:18:48 -05:00
Nick Pope 24b82cd201 Fixed #30159 -- Removed unneeded use of OrderedDict.
Dicts preserve order since Python 3.6.
2019-02-06 13:48:39 -05:00
Tim Graham 0004daa536
Used 4 space hanging indent for dictionaries.
Thanks Mariusz Felisiak for auditing.
2019-01-02 18:18:19 -05:00
Patrik Sletmo 14e2b1b065 Fixed #29981 -- Fixed inline formsets with a OnetoOneField primary key that uses to_field. 2019-01-01 10:40:22 -05:00
Basil Dubyk 35a08b8541 Fixed #17210 -- Made NullBooleanSelect use unknown/true/false as query data. 2018-11-14 13:43:34 -05:00
Sergey Fedoseev 54b331451c Refs #29689 -- Moved FilePathField choices sorting outside the loop. 2018-08-29 06:19:32 -04:00
Jon Dufresne ef87b38ef7 Fixed #29696 -- Prevented BaseModelFormSet.initial_form_count()'s from treating data={} as unbound. 2018-08-21 10:02:03 -04:00
Federico Bond a0ca4b5694 Fixed #29689 -- Improved performance of FileSystemStorage.listdir() and FilePathField with os.scandir(). 2018-08-20 17:58:00 -04:00
Tim Graham 838d6dcb86 Refs #29426 -- Made UUIDField render values with dashes. 2018-08-18 08:20:21 -04:00
Tim Graham 730173d1c5 Fixed #29623 -- Fixed translation failure of DurationField's "overflow" error message. 2018-08-08 06:24:52 -04:00
Demur Nodia 06a11ef6ec Fixed #26819 -- Fixed BaseModelFormSet.validate_unique() "unhashable type: list" crash. 2018-07-30 16:52:12 -04:00
Tim Graham 236bcfea42 Fixed #29474 -- Simplified BaseInlineFormset.save_new(). 2018-06-07 21:14:19 -04:00
François Freitag d1413c5d70 Refs #28312 -- Added an optimized __bool__() to ModelChoiceIterator.
COUNT is more expensive than EXISTS; use the latter when possible.
2018-04-23 13:03:07 -04:00
François Freitag 3fca95e1ad Fixed #28312 -- Made ModelChoiceIterator.__len__() more memory-efficient.
Instead of loading all QuerySet results in memory, count the number of
entries. This adds an extra query when list() or tuple() is called on the
choices (because both call __len__() then __iter__()) but uses less
memory since the QuerySet results won't be cached. In most cases, the
choices will only be iterated on, meaning that __len__() won't be called
and only one query will be executed.
2018-04-23 12:39:43 -04:00
Tom 11b8c30b9e Ref #23919 -- Replaced some os.path usage with pathlib.Path. 2018-04-19 21:30:00 -04:00
safu9 9fd9f8bbb2 Fixed #29284 -- Made ImageField render with accept="image/*"' HTML attribute. 2018-04-04 13:16:03 -04:00
Claude Paroz f3b69f9757 Fixed #29273 -- Prevented initial selection of empty choice in multiple choice widgets.
Regression in b52c73008a.
2018-04-02 08:52:53 -04:00
Dan Watson e163effecc Fixed #29279 -- Added renderer argument to ModelForm. 2018-03-31 20:45:59 -04:00
Mariusz Felisiak 362813d628
Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
Tim Graham 87dc0844a6 Fixed #29200 -- Fixed label rendering when using RadioSelect and CheckboxSelectMultiple with MultiWidget. 2018-03-15 09:10:23 -04:00
Daniel Hahler 683341db43 Condensed some widgets code. 2018-03-03 13:35:09 -05:00
François Freitag a2e97abd81 Fixed #29159 -- Made ModelChoiceIterator reuse QuerySet result cache.
When __len__() is called (e.g. when casting to list or tuple), the
QuerySet is evaluated and the result cache populated. iterator()
shouldn't be called on the QuerySet after that, as it would reset the
result cache and trigger a second query.
2018-03-01 14:17:56 -05:00
François Freitag 40f0aa9885 Fixed #29158 -- Fixed len(choices) crash if ModelChoiceField's queryset is a manager.
Removing all() in __iter__() prevents a duplicate query when choices are
cast to a list and there's a prefetch_related().
2018-03-01 14:12:14 -05:00
Mariusz Felisiak 074a2f7f58
Refs #28909 -- Simplifed code using unpacking generalizations. 2018-02-26 18:23:31 +01:00
Herbert Parentes Fortes Neto d368784bac Fixed #28171 -- Added an exception if Form's empty_permitted and use_required_attribute arguments conflict. 2018-02-15 13:44:26 -05:00
Tim Graham 16ee53d7bb
Fixed #29113 -- Simplified django.forms.formsets.all_valid() and clarified docstring. 2018-02-05 10:29:38 -05:00
Vlastimil Zíma fbc3c29e7c Fixed #29036 -- Fixed HTML5 required validation on SelectDateWidget if the attribute is added by JavaScript.
Thanks Tim Graham for the initial patch.
2018-01-30 19:09:31 -05:00
Tim Graham 5538729e4e
Fixed #29089 -- Avoided redundant date parsing in SelectDateWidget.format_value(). 2018-01-30 18:11:05 -05:00
Jon Dufresne ff05de760c Fixed #29038 -- Removed closing slash from HTML void tags. 2018-01-21 02:09:10 -05:00
Jon Dufresne 47d238b696 Fixed #29041 -- Changed SelectMultiple's multiple attribute to HTML5 boolean syntax. 2018-01-20 11:19:06 -05:00
Jon Dufresne 90ca9412e4 Removed unnecessary microsecond truncation in SplitDateTimeWidget.
The microseconds are already truncated by the TimeInput subwidget.
2018-01-18 11:23:06 -05:00
Jon Dufresne 3c34452ab5 Refs #23668 -- Removed passing default argument of current TZ to make_aware()/naive. 2018-01-18 11:21:12 -05:00
Дилян Палаузов a38ae914d8 Fixed #28996 -- Simplified some boolean constructs and removed trivial continue statements. 2018-01-12 12:44:50 -05:00
Sergey Fedoseev 1dce629c03 Refs #29006 -- Simplified handling of SNaN values in DecimalField.validate(). 2018-01-11 07:02:46 -05:00
Fabio Bonelli c886f3dee3 Fixed #29006 -- Fixed DecimalField.clean() crash on sNaN values. 2018-01-10 20:30:44 -05:00
Tim Graham ec2ce4517a Fixed #28882 -- Fixed cleaning of disabled MultiValueFields.
Thanks avalanchy for the initial patch.
2018-01-05 15:49:54 -05:00
Дилян Палаузов d7b2aa24f7 Fixed #28982 -- Simplified code with and/or. 2018-01-03 20:12:23 -05:00
Дилян Палаузов d79cf1e9e2 Fixed #28985 -- Removed unneeded None checks before hasattr(). 2018-01-03 11:37:06 -05:00
Mariusz Felisiak 51a00749e9
Used Decimal.scaleb() in backends.utils.format_number() and DecimalField.widget_attrs() to improve performance. 2017-12-30 18:05:15 +01:00
Дилян Палаузов 4c599ece57 Fixed #28930 -- Simplified code with any() and all(). 2017-12-26 17:11:15 -05:00
Daniil 7c7bc6391a Fixed #28874 -- Prevented double escaping of errors on hidden form fields. 2017-12-11 07:30:47 -05:00
Nick Pope d13a9e44de Fixed #28909 -- Simplified code using tuple/list/set/dict unpacking. 2017-12-11 07:08:45 -05:00
Sergey Fedoseev 23a27f2c03 Simplified widgets.Select._choice_has_empty_value(). 2017-12-08 08:14:25 +05:00
Tim Graham 2b81faab25
Fixed #28906 -- Removed unnecessary bool() calls. 2017-12-07 17:13:07 -05:00
Nick Pope e014f91a70 Fixed #28890 -- Removed newlines between MultiWidget's subwidgets.
Regression in b52c73008a.
2017-12-05 11:22:36 -05:00
Дилян Палаузов d2afa5eb23 Fixed #28860 -- Removed unnecessary len() calls. 2017-12-04 10:35:23 -05:00
Дилян Палаузов 23bf4ad87f Fixed #28795 -- Removed 'not in' checks and used dict.setdefault(). 2017-11-14 10:52:52 -05:00
Дилян Палаузов c69e4bc691 Fixed #28769 -- Replaced 'x if x else y' with 'x or y'. 2017-11-07 09:08:46 -05:00
Srinivas Reddy Thatiparthy 55b5393bd2 Fixed #28474 -- Made DurationField raise ValidationError for inputs that raised OverflowError. 2017-10-25 18:05:13 -04:00
Tim Graham 2bd207ada0 Refs #15667 -- Removed support for Widget.render() methods without the renderer argument.
Per deprecation timeline.
2017-09-22 12:51:18 -04:00
Mariusz Felisiak 0ec0e5029c Removed unnecessary parens in various code. 2017-09-13 21:20:29 -04:00
Mariusz Felisiak 0214f367bc Merged isinstance() calls. 2017-09-13 15:00:45 -04:00
Tim Graham 6e4c6281db Reverted "Fixed #27818 -- Replaced try/except/pass with contextlib.suppress()."
This reverts commit 550cb3a365
because try/except performs better.
2017-09-07 08:16:21 -04:00
Josh Schneier 48c394a6fc Fixed #28555 -- Made CharField convert whitespace-only values to the empty_value when strip is enabled. 2017-09-05 12:41:38 -04:00
Sergey Fedoseev f0d9ede9e6 Removed useless itertools.chain() call in ChoiceWidget.optgroups(). 2017-08-31 08:04:36 -04:00
caleb logan 9e2bf65d6a Fixed #28530 -- Prevented SelectDateWidget from localizing years in output. 2017-08-29 14:56:08 -04:00
Collin Anderson 751f7a6d9b Added Media.__repr__().
It makes it easier to debug MediaOrderConflictWarnings
(refs #28377).
2017-08-26 20:57:45 -04:00
Alejandro Zamora 90d7b912b9 Fixed #28201 -- Added ProhibitNullCharactersValidator and used it on CharField form field. 2017-08-12 20:14:14 -04:00
Srinivas Reddy Thatiparthy 5cb7619995 Simplified Float/DecimalField.validate() with math.isfinite(). 2017-08-09 20:41:39 -04:00
Srinivas Reddy Thatiparthy b5d47b18f1 Removed unnecessary else in SelectDateWidget.id_for_lable(). 2017-08-07 22:01:45 -04:00
Sergey Fedoseev aadd3aeb2b Avoided creating temporary lists for obtaining the first item. 2017-07-31 11:02:23 -04:00
Sergey Fedoseev 38988f289f Avoided creation of temporary sets. 2017-07-29 10:16:43 -04:00
Srinivas Reddy Thatiparthy b306c0c1a3 Fixed #28264 -- Made FilePathField sort files and directories when recursive=True. 2017-07-29 09:15:46 -04:00
Windson yang f32d24652b Fixed #28321 -- Prevented FormSet.full_clean() from adding errors from deleted forms. 2017-07-24 18:55:41 -04:00
Johannes Hoppe c19b56f633 Fixed #28377 -- Made combining form Media retain relative asset order.
Thanks Florian Apolloner, Mariusz Felisiak, and Tim Graham for reviews.
2017-07-20 11:06:30 -04:00
Roman Selivanov d4da39685b Fixed #28414 -- Fixed ClearableFileInput rendering as a subwidget of MultiWidget. 2017-07-19 14:28:06 -04:00
Srinivas Reddy Thatiparthy 5debbdfcc8 Fixed #28387 -- Fixed has_changed() for disabled form fields that subclass it. 2017-07-14 13:06:51 -04:00
Windsooon e19b9d6015 Merged nested if statements in BaseFormSet.is_valid(). 2017-07-12 14:13:03 -04:00
Jon Dufresne d7881d2020 Fixed #22229 -- Added primary key validation to BaseModelFormSet._construct_form(). 2017-07-11 14:33:21 -04:00
Jon Dufresne a1be12fe19 Fixed #28345 -- Applied limit_choices_to during ModelForm.__init__().
field_for_model() now has an additional keyword argument,
apply_limit_choices_to, allowing it to continue to be used to create
form fields dynamically after ModelForm.__init__() is called.

Thanks Tim Graham for the review.
2017-06-30 15:57:48 -07:00
Mads Jensen 550cb3a365 Fixed #27818 -- Replaced try/except/pass with contextlib.suppress(). 2017-06-28 14:07:55 -04:00
Tim Graham 221e6e1817 Fixed #28176 -- Restored the uncasted option value in ChoiceWidget template context. 2017-06-17 18:17:23 -04:00
Tim Graham 3b050fd0d0 Fixed #28303 -- Prevented localization of attribute values in the DTL attrs.html widget template. 2017-06-17 08:12:05 -04:00
Tom 3eb3907bb1 Refs #23919 -- Replaced stray super(ClassName, self) with super(). 2017-06-10 20:46:43 -04:00
Claude Paroz 43b574007e Fixed #28192 -- Required passing optional form field args as keyword args. 2017-06-03 10:49:01 -04:00
Tim Graham 8e752d8437 Refs #28192 -- Made MultiValueField/ComboField fields argument required as documented. 2017-06-03 10:15:46 -04:00
Jon Dufresne 29a518006f Fixed #28265 -- Prevented renderer warning on Widget.render() with **kwargs. 2017-06-02 09:46:43 -04:00
Jon Dufresne 2c69824e5a Refs #23968 -- Removed unnecessary lists, generators, and tuple calls. 2017-06-01 19:08:59 -04:00
Manatsawin Hanmongkolchai a0c07d77fc Fixed #28242 -- Moved ImageField file extension validation to the form field. 2017-06-01 10:13:23 -04:00
Jon Dufresne 21046e7773 Fixed #28249 -- Removed unnecessary dict.keys() calls.
iter(dict) is equivalent to iter(dict.keys()).
2017-05-27 19:08:46 -04:00
Tom 7afb476469 Fixed #28226 -- Replaced use of str.join() with concatenation. 2017-05-27 13:59:05 -04:00
Tim Heap 5b6181f4d5 Fixed #27922 -- Added ErrorDict.get_json_data(). 2017-05-27 09:19:42 -04:00
Alexander Kavanaugh 362fba87c9 Fixed #28159 -- Fixed BaseInlineFormSet._construct_form() crash when using save_as_new.
Regression in 4a246a02bd.
2017-05-03 07:45:51 -04:00
Tim Graham d302e2c09c Fixed #28157 -- Fixed choice ordering in form fields with grouped and non-grouped options.
Regression in b52c73008a.
2017-05-03 07:21:44 -04:00
Tim Graham f04a404917 Fixed #28130 -- Fixed formset min_num validation with initial, unchanged forms.
Regression in f5c6295797.
2017-04-28 09:32:40 -04:00
Claude Paroz 301de774c2 Refs #27795 -- Replaced many force_text() with str()
Thanks Tim Graham for the review.
2017-04-27 09:10:02 +02:00
Jon Dufresne 92bc727271 Replaced temporary lists used for passing arguments with iterables. 2017-04-26 10:54:20 -04:00
Jon Dufresne 3e91850dcc Removed unneeded is True|False from bool expressions in widgets.py. 2017-04-21 12:34:18 -04:00
Jon Dufresne 581879a510 Fixed #28075 -- Prevented ChoiceWidget from localizing option values. 2017-04-21 12:14:40 -04:00
Tim Graham af1f986360 Fixed #28059 -- Restored class attribute in <ul> of widgets that use multiple_input.html.
Regression in b52c73008a
2017-04-20 10:06:34 -04:00
Tim Graham c09bf8d767 Fixed #28058 -- Restored empty BoundFields evaluating to True.
Regression in b52c73008a
2017-04-17 08:32:29 -04:00
Stefan Wehrmeyer 1aa8e8605c Fixed #27989 -- Preserved empty QueryDicts for form's data/files args. 2017-04-01 18:43:39 -04:00
Claude Paroz e487ffd3f0 Fixed #27866 -- Made ChoiceWidget.format_value() return a list
Thanks Tim Graham for the review.
2017-04-01 12:24:05 +02:00
heathervm 7d1e237753 Fixed #27993 -- Fixed model form default fallback for SelectMultiple. 2017-03-31 10:10:08 -04:00
James Beith 216bb2e8fb Fixed #27975 -- Fixed crash if ModelChoiceField's queryset=None.
Regression in 9153d8fbd6385db9f48793662de789fc3d686841.
2017-03-22 08:51:12 -04:00
Tim Graham 075e93c16a Refs #27919 -- Changed Widget.get_context() attrs kwarg to an arg. 2017-03-21 09:14:45 -04:00
Tim Graham 6ff356e891 Refs #27919 -- Passed ChoiceWidget.create_option() kwargs as expected. 2017-03-21 09:14:45 -04:00
Jon Dufresne 7edeeb74fe Fixed #27957 -- Removed technical terms from InlineForeignKeyField/ModelMultipleChoiceField error messages. 2017-03-20 13:12:55 -04:00
Adonys Alea Boffill cd2ad26cc9 Fixed #27724 -- Fixed SelectDateWidget redisplay if a year isn't chosen. 2017-03-18 15:14:52 -04:00
Tim Graham 44f9241c48 Refs #27563 -- Fixed ModelChoiceField.__deepcopy__() so forms don't share a queryset cache.
Thanks Luke Benstead for the report Simon Charettes for the fix.
2017-03-15 12:54:26 -04:00
Claude Paroz 540ae68a5c Fixed #27920 -- Restored empty RadioSelect choice producing value=""
Regression in b52c73008a.
Thanks Tim Graham for the review.
2017-03-14 18:23:06 +01:00
Claude Paroz 8346680e1c Refs #27795 -- Removed unneeded force_text calls
Thanks Tim Graham for the review.
2017-03-04 18:18:21 +01:00
Vytis Banaitis 3dcc351691 Refs #23919 -- Used yield from. 2017-02-23 20:06:01 -05:00
Anton Samarchyan 3eb679a869 Refs #27656 -- Updated django.forms/http docstring verbs according to PEP 257. 2017-02-20 19:57:33 -05:00
Tim Graham afcf44c101 Refs #23151 -- Removed RegexField's unused error_message parameter.
Should have been removed in b6ea1961eb.
2017-02-20 19:09:09 -05:00
Collin Anderson fb7e0e01af Fixed #27850 -- Made RelatedFieldWidgetWrapper call render() of the wrapped widget. 2017-02-20 08:48:03 -05:00
Mariusz Felisiak 0034e9af18 Fixed #5851 -- Allowed specifying different HTML attrs for SplitDateTimeWidget subwidgets.
Thanks Tim Graham and Nick Pope for review.
2017-02-07 11:33:37 -05:00
Claude Paroz c651331b34 Converted usage of ugettext* functions to their gettext* aliases
Thanks Tim Graham for the review.
2017-02-07 09:04:04 +01:00
Tim Graham 4353640ea9 Fixed #27805 -- Fixed ClearableFileInput's "Clear" checkbox on model fields with a default. 2017-02-06 20:31:04 -05:00
Vytis Banaitis 8838d4dd49 Refs #23919 -- Replaced kwargs.pop() with keyword-only arguments. 2017-02-01 11:41:56 -05:00
Jon Dufresne 6d8979f4c2 Fixed #27758 -- Reallowed AdvancedModelIterator pattern after template widget rendering. 2017-01-31 09:41:51 -05:00
Tim Graham e07e743e0c Refs #23919 -- Used DeclarativeFieldsMetaclass.__prepare__() for tracking form field order. 2017-01-27 12:46:21 -05:00
Tim Graham af598187ec Removed unnecessary force_text() in BaseTemporalField.to_python().
This seems unneeded since its introduction in
da3aa22d04.
2017-01-26 13:35:39 -05:00
Vytis Banaitis d1bab24e01 Refs #23919, #27778 -- Removed obsolete mentions of unicode. 2017-01-26 08:19:27 -05:00
chillaranand d6eaf7c018 Refs #23919 -- Replaced super(ClassName, self) with super(). 2017-01-25 12:23:46 -05:00
Jon Dufresne 0d74c41981 Replaced dict() usage with dict literals.
Literals are faster and more idiomatic.
2017-01-23 19:13:49 -05:00
Jon Dufresne f0573aad4b Replaced "not var is ..." with "is not" in attrs.html. 2017-01-23 13:14:00 -05:00
Jon Dufresne 5fa390ee81 Fixed #27759 -- Prevented forms attrs.html template from rendering False attrs.
Regression in b52c73008a.
2017-01-23 08:49:00 -05:00
Jon Dufresne 88183117c2 Fixed #27761 -- Fixed quote location in multiple_input.html forms templates. 2017-01-23 07:44:57 -05:00
Jon Dufresne ecd5944666 Removed ChoiceWidget.render() as it duplicates parent implementation. 2017-01-23 07:33:27 -05:00
Claude Paroz 6e55e1d88a Refs #23919 -- Replaced six.reraise by raise 2017-01-22 20:08:04 +01:00
Tim Graham d170c63351 Refs #23919 -- Removed misc references to Python 2. 2017-01-21 20:02:00 -05:00
Mariusz Felisiak c22212220a Refs #23919 -- Removed re.U and re.UNICODE (default on Python 3). 2017-01-21 14:28:16 -05:00
Tim Graham 4e729feaa6 Refs #23919 -- Removed django.utils._os.upath()/npath()/abspathu() usage.
These functions do nothing on Python 3.
2017-01-20 08:01:02 -05:00
Claude Paroz dc8834cad4 Refs #23919 -- Removed unneeded force_str calls 2017-01-20 08:44:31 +01:00
Simon Charette 9695b14982 Refs #23919 -- Removed str() conversion of type and method __name__. 2017-01-19 11:31:07 -05:00
Simon Charette 4c5ed3e683 Refs #23919 -- Removed __nonzero__() methods (for Python 2).
Thanks Tim for the review.
2017-01-19 11:26:26 -05:00
Simon Charette cecc079168 Refs #23919 -- Stopped inheriting from object to define new style classes. 2017-01-19 08:39:46 +01:00
Aymeric Augustin eb422e476f Refs #23919 -- Removed obsolete __ne__() methods.
__ne__() defaults to the opposite of __eq__() on Python 3
when it doesn't return NotImplemented.
2017-01-18 21:44:00 -05:00
Aymeric Augustin 3cc5f01d9b Refs #23919 -- Stopped using django.utils.lru_cache(). 2017-01-18 21:42:40 -05:00
Claude Paroz 2b281cc35e Refs #23919 -- Removed most of remaining six usage
Thanks Tim Graham for the review.
2017-01-18 21:33:28 +01:00
Claude Paroz 7b2f2e74ad Refs #23919 -- Removed six.<various>_types usage
Thanks Tim Graham and Simon Charette for the reviews.
2017-01-18 20:18:46 +01:00
Claude Paroz f3c43ad1fd Refs #23919 -- Removed python_2_unicode_compatible decorator usage 2017-01-18 13:44:34 +01:00
Claude Paroz d7b9aaa366 Refs #23919 -- Removed encoding preambles and future imports 2017-01-18 09:55:19 +01:00
Tim Graham 58d3d14aea Refs #26533 -- Removed support for Widget._format_value() per deprecation timeline. 2017-01-17 20:52:04 -05:00
Tim Graham 742d666da5 Refs #24219 -- Removed django.forms.extras per deprecation timeline. 2017-01-17 14:09:28 -05:00
Mariusz Felisiak 974d14534c Fixed #27723 -- Set MultiWidget's subwidgets input type from attrs argument.
Regression in b52c73008a.
2017-01-13 06:34:33 -05:00
Mariusz Felisiak 6872ce2266 Fixed #27712 -- Reallowed Input widget's attrs argument to set the input type.
Regression in b52c73008a.
2017-01-10 11:38:27 -05:00
Dmitry 12cefee5d8 Refs #15667 -- Prevented newlines in attrs.html widget rendering.
Removed the trailing newline from widget attrs.html template.
The solution may be revisited by fixing refs #9198 but not
for Django 1.11.

Thanks Dmitry Ivanchenko for the report and Preston Timmons for advice.
2017-01-06 19:11:32 -05:00
Josef Rousek aaecf038ca Fixed #27370 -- Prevented Select widget from using 'required' with a non-empty first value. 2016-12-28 10:45:22 -05:00
Preston Timmons b52c73008a Fixed #15667 -- Added template-based widget rendering.
Thanks Carl Meyer and Tim Graham for contributing to the patch.
2016-12-27 17:50:10 -05:00
Illia Volochii 4a51ba228b Fixed #27642 -- Made forms.utils.flatatt() omit 'None' values from attrs. 2016-12-27 09:42:17 -05:00
Hiroki Kiyohara 181f492ad0 Fixed #27416 -- Prevented ModelFormSet from creating objects for invalid PKs in data. 2016-12-06 13:06:58 -05:00
Jon Dufresne 6abd6c598e Fixed #27563 -- Moved "apply limit_choices_to" code from BaseModelForm to fields_for_model(). 2016-12-02 08:40:24 -08:00
Claude Paroz d49551bc26 Fixed #27119 -- Cached BaseFormSet.management_form property
Thanks Tim Graham for the review.
2016-12-01 20:17:25 +01:00
Diego Martín abd434059e Fixed #27250 -- Removed 'for ="..."' from CheckboxSelectMultiple's <label>. 2016-11-22 11:48:37 -05:00
Kenneth Veldman 8618a7eaa1 Fixed #27431 -- Prevented disabled form fields from appearing as changed. 2016-11-11 06:57:57 -05:00
Leila20 656654fb5b Fixed typo in django/forms/widgets.py comment. 2016-11-06 11:55:33 +01:00