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
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
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
François Freitag
06172d7bc2
Consolidated ModelChoiceField tests.
2018-03-01 14:05:35 -05:00
Tim Graham
3fb718f17d
Eliminated the need to modify a model forms test when new test files are added.
2018-02-28 10:26:26 -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
Tim Graham
e5bd585c6e
Fixed #28543 -- Prevented ManyToManyField.value_from_object() from being lazy.
...
Previously, it was a QuerySet which could reevaluate to a new value if the
model's data changes. This is inconsistent with other Field.value_from_object()
methods.
This allows reverting the fix in the admin for refs #27998 .
2017-08-31 09:34:44 -04:00
Mads Jensen
a51c4de194
Used assertRaisesMessage() to test Django's error messages.
2017-07-29 19:07:23 -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
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
Tom
3eb3907bb1
Refs #23919 -- Replaced stray super(ClassName, self) with super().
2017-06-10 20:46:43 -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
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
Mariusz Felisiak
2767ef3ca7
Fixed nondeterministic ordering test failure in model_forms.
2017-03-16 11:14:51 -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
Tim Graham
d6e26e5b7c
Removed obsolete references to form_for_instance().
2017-02-28 07:37:25 -05:00
Vytis Banaitis
3dcc351691
Refs #23919 -- Used yield from.
2017-02-23 20:06:01 -05:00
Jon Dufresne
6d8979f4c2
Fixed #27758 -- Reallowed AdvancedModelIterator pattern after template widget rendering.
2017-01-31 09:41:51 -05:00
chillaranand
d6eaf7c018
Refs #23919 -- Replaced super(ClassName, self) with super().
2017-01-25 12:23:46 -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
Simon Charette
9695b14982
Refs #23919 -- Removed str() conversion of type and method __name__.
2017-01-19 11:31:07 -05:00
Simon Charette
cecc079168
Refs #23919 -- Stopped inheriting from object to define new style classes.
2017-01-19 08:39:46 +01: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
bcf3532ede
Refs #26154 -- Removed deprecated CommaSeparatedIntegerField.
2017-01-17 20:52:02 -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
Tim Graham
7ed456063b
Updated LimitChoicesToTests to use setUpTestData and cosmetic edits.
2016-12-02 14:46:52 -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
za
321e94fa41
Refs #27392 -- Removed "Tests that", "Ensures that", etc. from test docstrings.
2016-11-10 21:30:21 -05:00
Michal Petrucha
09da1e79de
Fixed #27369 -- Prevented widgets from being shared between form field instances.
2016-11-06 07:16:56 +01:00
Tim Graham
2f9861d823
Fixed #27148 -- Fixed ModelMultipleChoiceField crash with invalid UUID.
2016-10-31 15:21:05 -04:00
Tim Graham
87c5e7efeb
Refs #27186 -- Fixed model form default fallback for CheckboxSelectMultiple.
2016-09-30 14:49:50 -04:00
Tim Graham
3507d4e773
Fixed #27186 -- Fixed model form default fallback for MultiWidget, FileInput, SplitDateTimeWidget, SelectDateWidget, and SplitArrayWidget.
...
Thanks Matt Westcott for the review.
2016-09-22 12:20:58 -04:00
Jon Dufresne
2c716c1dc7
Fixed #27256 -- Changed Select widget's selected attribute to use HTML5 boolean syntax.
2016-09-21 15:12:13 -07:00
Tim Graham
8119b679eb
Refs #27025 -- Fixed "invalid escape sequence" warnings in Python 3.6.
...
http://bugs.python.org/issue27364
2016-09-17 15:44:06 -04:00
Adam Chainz
652bcc6f5f
Refs #25415 -- Fixed invalid models in the test suite.
2016-09-09 17:16:42 -04:00
Tim Graham
dab653cadc
Organized forms_tests test_regressions.py.
2016-09-09 08:55:29 -04:00
Alex Hill
d9c083cfee
Refs #27039 -- Fixed regression with field defaults in prefixed forms.
2016-09-01 09:13:21 -04:00
Tim Graham
4bc6b93994
Fixed #27039 -- Fixed empty data fallback to model field default in model forms.
2016-08-24 17:50:10 -04:00
Alex Hill
74105b2636
Fixed #27002 -- Prevented double query when rendering ModelChoiceField.
2016-08-08 13:41:05 -04:00
Alex Hill
c5ebfda002
Fixed #27001 -- Fixed a query count regression in ModelChoiceField with RadioSelect.
2016-08-03 10:45:55 -04:00
Tim Graham
4e86168290
Fixed #26970 -- Fixed crash with disabled ModelMultipleChoiceField.
2016-07-30 13:31:48 -04:00
Tim Graham
a5f85d891b
Fixed #26917 -- Fixed crash in disabled ModelChoiceFields.
...
Partially reverted refs #25532 to fix a regression in Django 1.10.
This reintroduces a crash for disabled forms.JSONField (refs #26949 ),
however, that issue is also present on Django 1.9.
Thanks Ryan Schave for the test.
2016-07-27 08:14:14 -04:00
Andrey Fedoseev
81963b37a9
Fixed #17657 -- Made ModelForm respect ModelMultipleChoiceField's to_field_name.
...
Follow up to 67d984413c
.
2016-07-12 16:20:06 -04:00
Tim Graham
c9ae09addf
Replaced use of TestCase.fail() with assertRaises().
...
Also removed try/except/fail antipattern that hides exceptions.
2016-06-28 11:21:26 -04:00
Tim Graham
26d0023ccc
Refs #15667 -- Fixed crash when indexing RadioFieldRenderer with ModelChoiceIterator.
...
Regression in 86573861a9
2016-06-18 10:33:37 -04:00
Jon Dufresne
4f336f6652
Fixed #26747 -- Used more specific assertions in the Django test suite.
2016-06-16 14:19:18 -04:00
Jon Dufresne
267dc4addd
Fixed #4136 -- Made ModelForm save empty values for nullable CharFields as NULL.
...
Previously, empty values were saved as strings.
2016-06-13 09:14:36 -04:00
David Sanders
5ec64f96b2
Fixed #26734 -- Made iterator class configurable on ModelChoiceField.
2016-06-09 11:10:26 -04:00
Offby-One Kenobi
f2b2a35699
Fixed docstring typos.
2016-05-02 11:43:03 -04:00
Jon Dufresne
ec6121693f
Fixed #22383 -- Added support for HTML5 required attribute on required form fields.
2016-04-21 19:16:38 -04:00
Tim Graham
92053acbb9
Fixed E128 flake8 warnings in tests/.
2016-04-08 10:12:33 -04:00
Yoong Kang Lim
d5f89ff6e8
Fixed #24974 -- Fixed inheritance of formfield_callback for modelform_factory forms.
2016-02-26 12:27:27 -05:00
Claude Paroz
d43156e1e9
Fixed #26238 -- Raised explicit error for non-editable field in ModelForm
...
Thanks Luke Crouch for the report and Simon Charette for the review.
2016-02-21 00:24:20 +01:00
haxoza
375e1cfe2b
Fixed #25349 -- Allowed a ModelForm to unset a fields with blank=True, required=False.
2016-02-19 14:18:53 -05:00
Hasan
3d0dcd7f5a
Refs #26022 -- Used context manager version of assertRaises in tests.
2016-01-29 12:32:18 -05:00
Tim Graham
6afa6818fc
Fixed #25496 -- Made ModelChoiceField respect prefetch_related().
2015-10-05 18:21:56 -04:00
Tim Graham
7cb3a48843
Fixed #25410 -- Fixed empty ClearableFileInput crash on Python 2.
...
Reverted "Fixes #24727 -- Prevented ClearableFileInput from masking
exceptions on Python 2" and added a regression test.
This reverts commit 5c412dd8a7
.
2015-09-23 10:26:19 -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
f2b665f886
Fixed #25241 -- Corrected ModelForm.save() error message when saving invalid form with UUIDField pk.
2015-08-07 07:44:59 -04:00
Flavio Curella
c2e70f0265
Fixed #21127 -- Started deprecation toward requiring on_delete for ForeignKey/OneToOneField
2015-07-27 18:28:13 -04:00
Simon Charette
be67400b47
Refs #24652 -- Used SimpleTestCase where appropriate.
2015-05-20 13:46:13 -04:00
Bertrand Bordage
3e64f3d0fc
Fixed #24531 -- Improved CommaSeparatedIntegerField validation.
...
`','`, `'1,,1'`, `',1'` etc. are no longer considered as valid
comma-separated integer lists.
2015-03-25 18:49:59 -04:00
Claude Paroz
b4a1bb8669
Updated test to be date-independent
...
Fixes commit 8714403614
.
2015-03-05 10:08:39 +01: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
Aymeric Augustin
934400759d
Guaranteed removal of temporary files during tests.
...
Dropped the DJANGO_TEST_TEMP_DIR environment variable.
Before this change, proper removal depended on the developer passing
dir=os.environ['DJANGO_TEST_TMP_DIR'] to tempfile functions.
2015-02-23 16:55:26 +01: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
Collin Anderson
db77915c9f
Fixed E265 comment style
2015-02-06 09:30:35 -05:00
Tim Graham
0ed7d15563
Sorted imports with isort; refs #23860 .
2015-02-06 08:16:28 -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
Michael Hall
895dc880eb
Fixed #23812 -- Changed django.utils.six.moves.xrange imports to range
2014-12-13 12:45:58 -05:00
Alasdair Nicol
5b26a014a8
Fixed #23865 -- documented how to assign errors to a field in Model.clean()
...
Also added a unit test wit the simpler syntax which we have documented,
where the dictionary values are strings.
2014-11-21 13:01:28 -05:00
Tim Graham
dec7da3c4c
Fixed flake8 warning.
2014-11-13 10:07:44 +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
Veres Lajos
a71a2ea756
Fixed typos using https://github.com/vlajos/misspell_fixer
2014-11-03 20:59:30 -05:00
Berker Peksag
f7969b0920
Fixed #23620 -- Used more specific assertions in the Django test suite.
2014-11-03 11:56:37 -05: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
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
Tushar Bhatia
11181a64f9
Fixed #22979 -- Moved bug* tests
2014-07-26 21:05:49 -04: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
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
Aymeric Augustin
cff59bedc2
Split ignores_nulls_in_unique_constraints feature.
...
Oracle and SQL Server don't have exactly the same limitations. It's
worth treating them differently.
2014-05-08 22:11:20 +02:00
Alex Gaynor
2bcb8bfc8d
Fix many many typos in comments throughout the codebase
2014-04-26 10:18:45 -07:00
Claude Paroz
bf2b0affe4
Forgotten slash removal in d320863878
2014-03-26 19:51:17 +01: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
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
4965a77407
Removed PIL compatability layer per deprecation timeline.
...
refs #19934 .
2014-03-21 10:54:53 -04:00
Alex Gaynor
0cf158cf9a
Fixed a small collection of flake8 violations that had snuck in
2014-03-20 10:30:41 -07:00
Claude Paroz
666a2ad22f
Merged model_forms_regress with model_forms tests
2014-03-14 15:18:08 +01:00
Claude Paroz
72cfbdc10a
Fixed #6103 -- Splitted tests in model_forms tests
2014-03-14 09:44:56 +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