Thanks Saravana Kumar for the report, and Sarah Boyce and Mariusz
Felisiak for the reviews.
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
While AlterUniqueTogether has been documented to be still allowed in historical
migrations for the foreseeable future it has been crashing since 2abf417c815c20
was merged because the latter removed support for Meta.index_together which the
migration framework uses to render models to perform schema changes.
CreateModel(options["unique_together"]) was also affected.
Refs #27236.
Co-authored-by: Simon Charette <charette.s@gmail.com>
Backport of b44efdfe543c9b9f12690b59777e6b275cb08103 from main.
This NotSupportedError was removed in 6375cee490725969b4f67b3c988ef01350c1ad6d
because it will never be reached due to the same exception raised by
Window.as_sql().
Backport of 94436dee57ce677e6ffcbb0438e0441d5c261d62 from main.
Thank you to Simon Charette and Sarah Boyce for the review.
Regression in 73df8b54a2fab53bec4c7573cda5ad8c869c2fd8.
Backport of 2f6b096b83c55317c7ceef2d8d5dc3bee33293dc from main.
Thank you to Namhong Kim for the report, and to Mariusz Felisiak and Marijke Luttekes for the review.
Regression in 01ed59f753139afb514170ee7f7384c155ecbc2d.
Backport of 2c029c718f45341cdd43ee094c24488743c633e6 from main.
Updated CommandTests.test_subparser_invalid_option and CommandDBOptionChoiceTests.test_invalid_choice_db_option to use assertRaisesRegex() for compatibility with modified error messages in Python 3.12, 3.13, and 3.14+..
Backport of fc22fdd34f1e55adde161f5f2dca8db90bbfce80 from main.
Thanks Felix Farquharson for the report and Claude Paroz for the
review.
Regression in 40b5b1596f7505416bd30d5d7582b5a9004ea7d5.
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
Backport of 3fad712a91a8a8f6f6f904aff3d895e3b06b24c7 from main.
These changes will make it easier to introduce tests for alternate
databases that may have different results without the need to duplicate
lots of the tests definition.
Backport of 5873f10177ebda66d38e698218cf85dc6397e7d9 from main.
Bug in 4971a9afe5642569f3dcfcd3972ebb39e88dd457.
Thank you to kazet for the report and Claude Paroz for the review.
Backport of 99dcc59237f384d7ade98acfd1cae8d90e6d60ab from main.
Regression in b47bdb4cd9149ee2a39bf1cc9996a36a940bd7d9.
Thank you Giannis Terzopoulos for the review, and Tom Carrick and Sarah Boyce
for the review.
Backport of 679d57816d716cbc7cff3b364ae265d70444ebd9 from main.
When ConcatPair was updated to use || this lost the implicit wrapping from CONCAT(...).
This broke the WHERE clauses when used in combination with PostgreSQL trigram similarity.
Regression in 6364b6ee1071381eb3a23ba6b821fc0d6f0fce75.
Backport of c3ca6075cc0ad425bcf905fe14062f38eb9fbcbf from main.
Co-authored-by: Emiliano Cuenca <106986074+emicuencac@users.noreply.github.com>
On successful submission of a password reset request, an email is sent
to the accounts known to the system. If sending this email fails (due to
email backend misconfiguration, service provider outage, network issues,
etc.), an attacker might exploit this by detecting which password reset
requests succeed and which ones generate a 500 error response.
Thanks to Thibaut Spriet for the report, and to Mariusz Felisiak, Adam
Johnson, and Sarah Boyce for the reviews.
Regression in 01ed59f753139afb514170ee7f7384c155ecbc2d.
Thank you to Fábio Domingues and Marijke Luttekes for the report,
and thank you to Natalia Bidart for the review.
Backport of fd1dd767783b5a7ec1a594fcc5885e7e4178dd26 from main.
Following the addition of PostgreSQL connection pool support in
Refs #33497, the methods for configuring the database role and timezone
were moved to module-level functions. This change prevented subclasses
of DatabaseWrapper from overriding these methods as needed, for example,
when creating wrappers for other PostgreSQL-based backends.
Thank you Christian Hardenberg for the report and to
Florian Apolloner and Natalia Bidart for the review.
Regression in fad334e1a9b54ea1acb8cce02a25934c5acfe99f.
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
Backport of 7380ac57340653854bc2cfe0ed80298cdac6061d from main.
Over the years we've had multiple instances of hit and misses when
emitting warnings: either setting the wrong stacklevel or not setting
it at all.
This work adds assertions for the existing warnings that were declaring
the correct stacklevel, but were lacking tests for it.
Backport of 57307bbc7d88927989cf5b314f16d6e13ade04e6 from main.
Refs #34429: Following the implementation allowing the setting of
unusable passwords via the admin site, the `BaseUserCreationForm` and
`UserCreationForm` were extended to include a new field for choosing
whether password-based authentication for the new user should be enabled
or disabled at creation time.
Given that these forms are designed to be extended when implementing
custom user models, this branch ensures that this new field is moved to
a new, admin-dedicated, user creation form `AdminUserCreationForm`.
Regression in e626716c28b6286f8cf0f8174077f3d2244f3eb3.
Thanks Simon Willison for the report, Fabian Braun and Sarah Boyce for
the review.
Backport of 0ebed5fa95f53b87383901bbd9341ef3c974344f from main.
This work also allows to subclass BaseUserCreationFormTest to reuse the
tests and assertions for testing forms that extend BaseUserCreationForm,
which is now used for UserCreationFormTest, increasing its coverage.
Backport of b60fd8722f305ec29c87f34d3fea262e56394ebd from main.
This also caused un-ordered sliced prefetches to crash as they rely on Window.
Regression in e16d0c176e9b89628cdec5e58c418378c4a2436a that made OrderByList
piggy-back ExpressionList without porting the empty handling that the latter
provided.
Supporting explicit empty ordering on Window functions and slicing is arguably
a foot-gun design due to how backends will return undeterministic results but
this is a problem that requires a larger discussion.
Refs #35064.
Thanks Andrew Backer for the report and Mariusz for the review.
Backport of 602fe961e6834d665f2359087a1272e9f9806b71 from main.
Regression in b0ad41198b3e333f57351e3fce5a1fb47f23f376.
Refs #34013. The initial logic did not consider that annotation aliases
can include lookup or transform separators.
Thanks Gert Van Gool for the report and Mariusz Felisiak for the review.
Backport of a16f13a8661297eda12c4177bb01fa2e5b5ccc56 from main.
LocaleMiddleware didn't handle the ValueError raised by
get_supported_language_variant() when language codes were
over 500 characters.
Regression in 9e9792228a6bb5d6402a5d645bc3be4cf364aefb.
Backport of 0e94f292cda632153f2b3d9a9037eb0141ae9c2e from main.
This is the exact same issue as refs #30408 but for creating a model with a
constraint containing % escapes instead of column addition. All of these issues
stem from a lack of SQL and parameters separation from the BaseConstraint DDL
generating methods preventing them from being mixed with other parts of the
schema alteration logic that do make use of parametrization on some backends
(e.g. Postgres, MySQL for DEFAULT).
Prior to the addition of Field.db_default and GeneratedField in 5.0
parametrization of DDL was never exercised on model creation so this is
effectively a bug with db_default as the GeneratedField case was addressed by
refs #35336.
Thanks Julien Chaumont for the report and Mariusz Felisiak for the review.
Backport of f359990e4909db8722820849d61a6f5724338723 from main.
Partially reverts 0b33a3abc2ca7d68a24f6d0772bc2b9fa603744e.
Storage.exists(name) was documented to "return False if
the name is available for a new file." but return True if
the file exists. This is ambiguous in the overwrite file
case. It will now always return whether the file exists.
Thank you to Natalia Bidart and Josh Schneier for the
review.
Backport of 8d6a20b656ff3fa18e36954668a44a831c2f6ddd from main.
Thank you Claude Paroz for the report.
Regression in 85366fbca723c9b37d0ac9db1d44e3f1cb188db2.
Backport of 182f262b15882649bbc39d769f9b721cf3660f6f from main.
The logic allowing UniqueConstraint(fields).validate to preserve backward
compatiblity with Model.unique_error_message failed to account for cases where
the constraint might not be attached to a model which is a common pattern
during testing.
This changes allows for arbitrary UniqueConstraint(fields) to be tested in
isolation without requiring actual models backing them up.
Co-authored-by: Mark G <mark.gensler@protonmail.com>
Backport of 13922580cccfb9ab2922ff4943dd39da56dfbd8c from main.