Claude Paroz
b03b19b585
Refs #29113 -- Simplified formset validation.
...
Thanks Nick Pope for review and complement.
2020-11-03 09:57:10 +01:00
Vitaliy Yelnik
d1791539a7
Simplified DeclarativeFieldsMetaclass.__new__() a bit.
2020-11-02 10:46:56 +01:00
alvinshaita
556fa4bbba
Fixed #1891 , Fixed #11707 -- Prevented duplicates with limit_choices_to on multi-value relations.
2020-10-27 20:40:04 +01:00
Jon Dufresne
b2717c7532
Simplifed formset iteration using enumerate().
2020-10-26 08:02:38 +01:00
manav014
096b14f0ac
Fixed #13060 -- Improved error message when ManagementForm data is missing.
2020-10-21 11:47:07 +02:00
Qi Zhao
de81676b51
Fixed #32080 -- Fixed displaying Unicode chars in forms.JSONField and read-only JSONField values in admin.
2020-10-09 08:14:17 +02:00
meghanabhange
848770dd2c
Fixed #32042 -- Improved error messages for the number of submitted forms in formsets.
2020-09-28 07:05:34 +02:00
David Smith
599f2f79e2
Fixed #30563 -- Optimized form Media by removing duplicated assets when adding.
2020-09-24 13:53:06 +02:00
Mariusz Felisiak
75d7af43c1
Corrected docstring quotes in various code.
2020-09-22 10:30:53 +02:00
Adam Johnson
2d2fbc3a70
Made jinja2 import lazy in django.forms.
...
Benchmarking shows that about 22% of the startup time for a simple
django project was spent importing jinja2, which the project doesn't
use.
It's reasonable to make this import lazy. This will only affect
projects where jinja2 is installed but not used, but given the
prevalence of jinja2 that's likely to be many environments (e.g. if
Ansible is installed, or the global Python install is used).
2020-09-22 09:53:17 +02:00
David Smith
e74b3d724e
Bumped minimum isort version to 5.1.0.
...
Fixed inner imports per isort 5.
isort 5.0.0 to 5.1.0 was unstable.
2020-07-30 10:58:59 +02:00
Jon Dufresne
cc3d24d7d5
Removed redundant forms.DecimalField.validate() in favor of DecimalValidator.
2020-07-27 12:07:53 +02:00
Claude Paroz
00727d384b
Refs #30578 -- Made SelectDateWidget.format_value() independent of USE_L10N.
2020-07-10 13:00:37 +02:00
David Smith
162765d6c3
Fixed #9061 -- Allowed FormSets to disable deleting extra forms.
...
Thanks to Dan Ward for the initial patch.
2020-06-24 09:26:25 +02:00
David Smith
433dd737f9
Fixed #20347 -- Allowed customizing the maximum number of instantiated forms in formsets.
...
Co-authored-by: ethurgood <ethurgood@gmail.com>
2020-06-05 12:01:32 +02:00
Carles Pina
e46c2326c8
Fixed #31536 -- Fixed rendering of disabled AdminFileWidget and ClearableFileInput.
2020-06-01 12:25:25 +02:00
Mariusz Felisiak
0668164b4a
Fixed E128, E741 flake8 warnings.
2020-05-12 08:52:23 +02:00
sage
6789ded0a6
Fixed #12990 , Refs #27694 -- Added JSONField model field.
...
Thanks to Adam Johnson, Carlton Gibson, Mariusz Felisiak, and Raphael
Michel for mentoring this Google Summer of Code 2019 project and
everyone else who helped with the patch.
Special thanks to Mads Jensen, Nick Pope, and Simon Charette for
extensive reviews.
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2020-05-08 07:23:31 +02:00
Jon Dufresne
b2ef3d7157
Simplified Widget.get_context() a bit.
2020-05-06 06:46:58 +02:00
David Smith
a350bfa6f4
Fixed #13009 -- Added BoundField.widget_type property.
2020-04-10 07:11:14 +02:00
David Smith
27746ab28a
Fixed #7664 -- Allowed customizing suffixes of MultiWidget.widgets' names.
2020-03-24 20:05:18 +01:00
David Smith
ccf32aca44
Fixed #8760 -- Changed ModelMultipleChoiceField to use invalid_list as a error message key.
2020-03-12 09:36:01 +01:00
Hasan Ramezani
49275c5488
Fixed #30261 -- Prevented Form._html_output() from mutating errors if hidden fields have errors.
2020-02-13 08:12:44 +01:00
Hasan Ramezani
da79ee472d
Fixed #26813 -- Prevented empty choice in ModelChoiceField with RadioSelect for fields with blank=False.
2020-02-05 10:27:01 +01:00
Nick Pope
335c9c94ac
Simplified imports from django.db and django.contrib.gis.db.
2020-02-04 13:20:06 +01:00
Shubham singh
ffcf1a8ebf
Fixed #31118 -- Made FileInput to avoid the required attribute when initial data exists.
2020-01-08 09:15:31 +01:00
Claude Paroz
188b003014
Fixed #15982 -- Added DATE_INPUT_FORMATS to forms.DateTimeField default input formats.
2020-01-07 11:08:40 +01:00
Claude Paroz
1487f16f2d
Fixed #11385 -- Made forms.DateTimeField accept ISO 8601 date inputs.
...
Thanks José Padilla for the initial patch, and Carlton Gibson for the
review.
2020-01-06 10:52:09 +01:00
Jon Dufresne
67ea35df52
Fixed #30998 -- Added ModelChoiceIteratorValue to pass the model instance to ChoiceWidget.create_option().
2019-12-23 10:34:50 +01:00
Shubham singh
f4647179cc
Fixed #31086 -- Improved error message for admin model inlines with more than one foreign key to the same parent.
2019-12-17 09:15:01 +01:00
Jon Dufresne
e703b93a65
Fixed #31080 -- Removed redundant type="text/javascript" attribute from <script> tags.
2019-12-11 09:49:54 +01:00
Peter Andersen
02eff7ef60
Fixed #31073 -- Prevented CheckboxInput.get_context() from mutating attrs.
2019-12-10 12:27:50 +01:00
Jon Dufresne
86a0231e0a
Refs #23919 -- Replaced super(...) with super() in metaclasses.
2019-11-28 15:34:29 +01:00
Carlton Gibson
ee4a19053a
Fixed #31012 -- Reverted "Fixed #29056 -- Fixed HTML5 validation of required SelectDateWidget."
...
This reverts commit f038214d91
.
The initial issue was incorrect. Django 2.2, and before, did not
generate invalid HTML as reported. With f03821 in place invalid HTML
was generated.
Thanks to Kevin Brown for follow-up report and investigation.
2019-11-21 20:53:31 +01:00
Jon Dufresne
77aa74cb70
Refs #29983 -- Added support for using pathlib.Path in all settings.
2019-11-07 10:26:22 +01:00
Hasan Ramezani
e3d0b4d550
Fixed #30899 -- Lazily compiled import time regular expressions.
2019-10-29 09:22:26 +01:00
Etienne Chové
e7cdb0cd7e
Fixed #30014 -- Fixed ModelChoiceField validation when initial value is a model instance.
...
Thanks Carlton Gibson for reviews.
2019-10-11 13:28:09 +02:00
Hasan Ramezani
a28d1b38e5
Fixed #30839 -- Fixed Field.__deepcopy__() so forms don't share error messages.
2019-10-08 10:07:05 +02:00
Mads Jensen
129583a0d3
Removed some outdated backwards compatibility imports and misleading comments.
...
EmptyResultSet moved in 46509cf13d
.
FieldDoesNotExist moved in 8958170755
.
BoundField and pretty_name moved in 8550161e53
.
EMPTY_VALUES moved in 471596fc1a
.
BaseRunserverCommand moved in 5c53e30607
.
2019-09-24 15:18:53 +02:00
Jon Dufresne
d89053585e
Improved error message when index in __getitem__() is invalid.
2019-07-23 20:12:08 +02:00
Jon Dufresne
42b9a23267
Fixed #30400 -- Improved typography of user facing strings.
...
Thanks Claude Paroz for assistance with translations.
2019-06-28 16:46:18 +02:00
Shubham Bhagat
26d16c07fd
Fixed #30578 - Made SelectDateWidget respect a custom date format when USE_L10N is disabled.
2019-06-26 11:07:11 +02:00
Tobias Kunze
a387ef1117
Added missing form argument in modelform_factory() docstring.
2019-06-20 15:13:22 +02:00
RobertAKARobin
aa94f7c899
Fixed #30534 -- Fixed overriding a field's default in ModelForm.cleaned_data().
2019-06-04 08:28:49 +02:00
Hasan Ramezani
f038214d91
Fixed #29056 -- Fixed HTML5 validation of required SelectDateWidget.
...
placeholder is required for "select" with "required" attribute.
2019-05-08 12:46:30 +02:00
Jon Dufresne
8b3f1c35dd
Removed unnecessary assignments in various code.
2019-04-24 13:09:29 +02:00
Ville Skyttä
03db5fddfd
Fixed typos in docs, comments, and exception messages.
2019-04-18 09:33:53 +02:00
belegnar
1ffddfc233
Fixed #30302 -- Fixed forms.model_to_dict() result if empty list of fields is passed.
2019-04-03 09:05:15 +02:00
Hasan Ramezani
5fc5d93512
Fixed #29956 -- Allowed overriding an order field widget in formsets.
2019-03-21 11:51:01 +01:00
Andra Denis Ionescu
4c086d7da4
Fixed #29459 -- Initialized form data/files with empty MultiValueDicts.
2019-03-05 10:41:08 -05:00
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