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