1
0
mirror of https://github.com/django/django.git synced 2025-03-09 17:02:43 +00:00

13167 Commits

Author SHA1 Message Date
sobolevn
9b5029f048 [5.0.x] Fixed #35426 -- Updated querysets to be a required argument of GenericPrefetch.
Backport of 9a27c76021f934201cccf12215514a3091325ec8 from main.
2024-05-04 11:34:12 +02:00
Sarah Boyce
ac9e18f1c4 [5.0.x] Refs #35359 -- Fixed OperationTests.test_add_generate_field() test on PostgreSQL.
Concat() in Django 5.0 is not immutable on PostgreSQL and cannot be used
in GeneratedField, see 6364b6ee1071381eb3a23ba6b821fc0d6f0fce75.
2024-05-03 23:52:24 -03:00
Mariusz Felisiak
c544f1a223 [5.0.x] Fixed #35422 -- Fixed migrations crash when altering GeneratedField referencing rename field.
Thanks Sarah Boyce for the report and Simon Charette for the
implementation idea.

Backport of 91a4b9a8ec2237434f06866f39c7977e889aeae6 from main.
2024-05-03 09:32:31 +02:00
DevilsAutumn
24f54c3b09 [5.0.x] Fixed #35359 -- Fixed migration operations ordering when adding fields referenced by GeneratedField.expression.
Thank you to Simon Charette for the review.

Backport of 9aeb38c296c69532c7e64b5e3d706a5eb17b3f12 from main.
2024-05-02 21:54:52 -03:00
David Sanders
fa202d5cb1 [5.0.x] Refs #34007, Refs #35359 -- Added Q.referenced_based_fields property.
Thank you to Mariusz Felisiak and Natalia Bidart for the reviews.

Backport of 97d48cd3c6f409584b5cc19fbddfca917bae78fd from main
2024-05-02 21:45:02 -03:00
Simon Charette
9d79714e25 [5.0.x] Fixed #35373 -- Fixed a crash when indexing a generated field on SQLite.
Generated fields have to be excluded from the INSERT query against the remade
table including the index.

Thanks Moshe Dicker for the report, David Sanders and Mariusz Felisiak for the
review.

Backport of d048f0d311cc9cb9578d687968f2d24a0a9efddb from main.
2024-04-16 17:31:22 +02:00
Simon Charette
5d95a1c35e [5.0.x] Refs #35194 -- Adjusted a generated field test to work on Postgres 15.6+.
Postgres >= 12.18, 13.14, 14.11, 15.6, 16.2 changed the way the immutability
of generated and default expressions is detected in postgres/postgres@743ddaf.

The adjusted test semantic is presereved by switching from __icontains to
__contains as both make use of a `%` literal which requires proper escaping.

Refs #35336.

Thanks bcail for the report.

Backport of 73b62a21265c4a417004d64d13a896469e2558f3 from main.
2024-04-12 14:59:01 +02:00
Sarah Boyce
f075a19e85 [5.0.x] Fixed #35350 -- Fixed save() with pk set on models with GeneratedFields.
Thanks Matt Hegarty for the report and Simon Charette and Natalia Bidart for the reviews.

Regression in f333e35.

Backport of 8b53560eea9f10a1271d3bdf765dc6f969c7d9d5 from main.
2024-04-10 15:55:30 +02:00
Mariusz Felisiak
d859c0be9c
[5.0.x] Refs #35336 -- Fixed SchemaTests.test_add_generated_field_contains() test on PostgreSQL.
Concat() in Django 5.0 is not immutable on PostgreSQL and cannot be used
in GeneratedField, see 6364b6ee1071381eb3a23ba6b821fc0d6f0fce75.
2024-04-05 09:14:35 -03:00
Simon Charette
fead2dd523 [5.0.x] Fixed #35336 -- Addressed crash when adding a GeneratedField with % literals.
A longer term solution is likely to have a better separation of parametrized
DDL altogether to handle checks, constraints, defaults, and generated fields
but such a change would require a significant refactor that isn't suitable
for a backport.

Thanks Adrian Garcia for the report.

Backport of 888b9042b3598bab6557c62de82505eec9ea62ed from main
2024-04-02 17:34:38 -03:00
Johannes Westphal
14ab15d69a [5.0.x] Fixed #35344, Refs #34838 -- Corrected output_field of resolved columns for GeneratedFields in aliased tables.
Thanks Simon Charette for the review.

Backport of 5f180216409d75290478c71ddb0ff8a68c91dc16 from main
2024-04-01 22:14:52 -03:00
Mariusz Felisiak
345e3cf57f [5.0.x] Fixed #35329 -- Fixed migrations crash when adding partial unique constraints with nulls_distinct.
Bug in 595a2abb58e04caa4d55fb2589bb80fb2a8fdfa1.

Thanks Lucas Lemke Saunitti for the report.
Backport of b98271a6e42107233311d17f5d7bc74fbb47f22c from main
2024-03-26 22:59:23 +01:00
Johannes Maron
8fd953f28a [5.0.x] Fixed #35273 -- Fixed rendering AdminFileWidget's attributes.
Regression in 8a6c0203c4e92908c2b26ba54feba4ce7e76d081.

Backport of e69019555d683fd6a831f87cb09e3deb86e4e7c7 from main
2024-03-14 20:37:53 +01:00
Ben Cail
5f07460a67 [5.0.x] Fixed #35223 -- Made Model.full_clean() ignore fields with db_default when validating empty values.
Thanks Brian Ibbotson for the report.

Regression in 7414704e88d73dafbcfbb85f9bc54cb6111439d3.

Backport of 1570ef02f34037d32218d463342592debccf915c from main.
2024-03-08 06:46:40 +01:00
Shai Berger
3394fc6132 [5.0.x] Fixed CVE-2024-27351 -- Prevented potential ReDoS in Truncator.words().
Thanks Seokchan Yoon for the report.

Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2024-03-04 08:22:40 +01:00
Shafiya Adzhani
80761c3b01 [5.0.x] Fixed #35198 -- Fixed facet filters crash on querysets with no primary key.
Thanks Simon Alef for the report.

Regression in 868e2fcddae6720d5713924a785339d1665f1bb9.

Backport of a738281265bba5d00711ab62d4d37923764a27eb from main
2024-02-29 10:37:26 +01:00
AlexCLeduc
69e5b13c75 [5.0.x] Fixed #35238 -- Fixed database serialization crash when base managers use prefetch_related().
Regression in 139135627650ed6aaaf4c755b82c3bd43f2b8f51
following deprecation in eedbf930287cb72e9afab1f7208c24b1146b0c4ec.

Backport of a084c5d35a6d00abd261338a374a4424764b4aee from main
2024-02-21 05:17:36 +01:00
Hisham Mahmood
3a54e64ef7 [5.0.x] Fixed #35173 -- Fixed ModelAdmin.lookup_allowed() for lookups on foreign keys when not included in ModelAdmin.list_filter.
Regression in f80669d2f5a5f1db9e9b73ca893fefba34f955e7.

Thanks Sarah Boyce for the review.
Backport of 8db593de05c3516c939b7d4b9eb91e8791f4c79a from main
2024-02-15 08:18:27 -03:00
Daniel Garcia Moreno
1ba5afa0f2 [5.0.x] Refs #34900, Refs #34118 -- Updated assertion in test_skip_class_unless_db_feature() test on Python 3.12.2+.
Python 3.12.2 bring back the skipped tests in the number of running
tests. Refs
0a737639dc

Backport of bc8471f0aac8f0c215b9471b594d159783bac19b from main
2024-02-10 17:08:07 +01:00
Vašek Dohnal
761e913191 [5.0.x] Fixed #35174 -- Fixed Signal.asend()/asend_robust() crash when all receivers are asynchronous.
Regression in e83a88566a71a2353cebc35992c110be0f8628af.

Backport of 1b5338d03ecc962af8ab4678426bc60b0672b8dd from main
2024-02-08 12:56:41 +01:00
Mariusz Felisiak
c22075af80 [5.0.x] Fixed #35172 -- Fixed intcomma for string floats.
Thanks Warwick Brown for the report.

Regression in 55519d6cf8998fe4c8f5c8abffc2b10a7c3d14e9.
Backport of 2f14c2cedc9c92373471c1f98a80c81ba299584a from main
2024-02-08 10:59:43 +01:00
Adam Johnson
16a8fe18a3 [5.0.x] Fixed CVE-2024-24680 -- Mitigated potential DoS in intcomma template filter.
Thanks Seokchan Yoon for the report.

Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
Co-authored-by: Shai Berger <shai@platonix.com>
2024-02-06 09:13:21 -03:00
Simon Charette
761946f8e1 [5.0.x] Fixed #35149 -- Fixed crashes of db_default with unresolvable output field.
Field.db_default accepts either literal Python values or compilables
(as_sql) and wrap the former ones in Value internally.

While 1e38f11 added support for automatic resolving of output fields for
types such as str, int, float, and other unambigous ones it's cannot do
so for all types such as dict or even contrib.postgres and contrib.gis
primitives.

When a literal, non-compilable, value is provided it likely make the
most sense to bind its output field to the field its attached to avoid
forcing the user to provide an explicit `Value(output_field)`.

Thanks David Sanders for the report.

Backport of e67d7d70fa10c06aca36b9057f82054eda45269d from main
2024-02-04 14:48:44 +01:00
Simon Charette
914eee1a9b [5.0.x] Refs #35149 -- Made equivalent db_default alterations noops.
This allows for an easier transition of preserving the literal nature of
non-compilable db_default.

Backport of fe1cb62f5c3f87fafc4a6b52fee2ccc6c80c41e2 from main
2024-02-04 14:48:32 +01:00
Simon Charette
3e7a30fb3a [5.0.x] Fixed #35162 -- Fixed crash when adding fields with db_default on MySQL.
MySQL doesn't allow literal DEFAULT values to be used for BLOB, TEXT,
GEOMETRY or JSON columns and requires expression to be used instead.

Regression in 7414704e88d73dafbcfbb85f9bc54cb6111439d3.

Backport of dfc77637ea5c1aa81caa72b1cf900e6931d61b54 from main
2024-02-04 09:24:38 +01:00
David Sanders
06b05c748f [5.0.x] Refs #34936 -- Added test for altering DecimalField with db_default to non-nullable.
Backport of 1944f490f91e44e1378d53420b64a78163aea815 from main
2024-02-01 08:13:26 +01:00
James Thorniley
f1fbd061ac [5.0.x] Fixed #35059 -- Ensured that ASGIHandler always sends the request_finished signal.
Prior to this work, when async tasks that process the request are cancelled due
to receiving an early "http.disconnect" ASGI message, the request_finished
signal was not being sent, potentially leading to resource leaks (such as
database connections).

This branch ensures that the request_finished signal is sent even in the case
of early termination of the response.

Regression in 64cea1e48f285ea2162c669208d95188b32bbc82.

Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
Co-authored-by: Carlton Gibson <carlton.gibson@noumenal.es>

Backport of 11393ab1316f973c5fbb534305750740d909b4e4 from main
2024-01-31 14:45:44 -03:00
Natalia
bbb9ef3c62 [5.0.x] Refs #35059 -- Made asgi tests' SignalHandler helper class re-usable by other tests.
Backport of a43d75e81da783fda08bf8d3493252e3676d11ea from main
2024-01-31 14:45:13 -03:00
Mariusz Felisiak
7453d6a807 [5.0.x] Fixed #35159 -- Fixed dumpdata crash when base querysets use prefetch_related().
Regression in 139135627650ed6aaaf4c755b82c3bd43f2b8f51
following deprecation in edbf930287cb72e9afab1f7208c24b1146b0c4ec.

Thanks Andrea F for the report.
Backport of 38eaf2f21a2398a8dd8444f6df3723898cb5fe2a from main
2024-01-31 16:10:50 +01:00
Nicolas Delaby
a5440054d2 [5.0.x] Fixed #35135 -- Made FilteredRelation raise ValueError on querysets as rhs.
Regression in 59f475470494ce5b8cbff816b1e5dafcbd10a3a3.

Backport of 820c5f1bacd41713bd30d8b5fefb66752ff15c4c from main
2024-01-30 05:54:39 +01:00
Mariusz Felisiak
0379e7532f [5.0.x] Applied Black's 2024 stable style.
https://github.com/psf/black/releases/tag/24.1.0

Backport of 305757aec19c9d5111e4d76095ae0acd66163e4b from main
2024-01-26 12:55:56 +01:00
Mariusz Felisiak
ee78fe390d [5.0.x] Fixed #35127 -- Made Model.full_clean() ignore GeneratedFields.
Thanks Claude Paroz for the report.

Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.
Backport of 4879907223d70ee1a82474d9286ccfa5dae96971 from main
2024-01-19 08:56:14 +01:00
Sarah Boyce
4cba6748a6 [5.0.x] Fixed #35087 -- Reallowed filtering against foreign keys not listed in ModelAdmin.list_filters.
Regression in f80669d2f5a5f1db9e9b73ca893fefba34f955e7.

Backport of a9094ec1f43dca7f2a649327afcd5e6226b4959c from main
2024-01-08 14:25:32 +01:00
Mariusz Felisiak
9a182f3d95 [5.0.x] Fixed #35056 -- Fixed system check crash on reverse m2m relations with related_name in ModelAdmin.filter_horizontal/vertical.
Thanks Thomas Feldmann for the report.

Regression in 107865780aa44914e21d27fdf4ca269bc61c7f01.
Backport of 751d732a3815a68bdb5b7aceda0e7d5981362c4a from main
2023-12-27 20:37:23 +01:00
David Wobrock
9aad44150f [5.0.x] Fixed #35050 -- Fixed prefixing field names in FilteredRelation().
Thanks Mark Zorn for the report.

Regression in 59f475470494ce5b8cbff816b1e5dafcbd10a3a3.

Backport of 14917c9ae272f47d23401100faa6cefa8e1728bf from main
2023-12-23 18:33:07 +01:00
Mariusz Felisiak
5f89da0837 [5.0.x] Fixed #35018 -- Fixed migrations crash on GeneratedField with BooleanField as output_field on Oracle < 23c.
Thanks Václav Řehák for the report.

Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.

Backport of fcf95e592774a6ededec35481a2061474d467a2b from main.
2023-12-12 05:41:38 +01:00
Sarah Boyce
03af8fbd0f [5.0.x] Fixed #35019 -- Fixed save() on models with both GeneratedFields and ForeignKeys.
Thanks Deb Kumar Das for the report.

Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.

Backport of b287af5dc954628d4b336aefc5027b2edceee64b from main
2023-12-08 12:09:56 +01:00
Mariusz Felisiak
415a08a528 [5.0.x] Fixed #35024 -- Fixed model instance creation crash on GeneratedField.output_field with backend converters.
Regression in d9de74141e8a920940f1b91ed0a3ccb835b55729.

This is a long standing issue, however it caused a crash of
GeneratedFields for all output fields that have backend-specific
converters when the RETURNING clause is not supported
(MySQL and SQLite < 3.35).
That's why severity was exacerbated.
Backport of 5b3b791e9046461901df3898be8544e14d91b931 from main
2023-12-07 20:50:48 +01:00
Sarah Boyce
454fd50efb [5.0.x] Fixed #35020 -- Fixed ModelAdmin.lookup_allowed() for non-autofield primary keys.
Thanks Joshua Goodwin for the report.

Regression in 45ecd9acca9b36093e274f47b6877a5f79108d9e.

Backport of f80669d2f5a5f1db9e9b73ca893fefba34f955e7 from main
2023-12-07 08:44:59 +01:00
Peter Thomassen
cb013fc7d9 [5.0.x] Fixed #35002 -- Made UniqueConstraints with fields respect nulls_distinct.
Regression in 595a2abb58e04caa4d55fb2589bb80fb2a8fdfa1.

Backport of 54cb1a7e160089cea438f50fdb70aaaf6823786e from main
2023-12-03 14:12:39 +01:00
Sarah Boyce
9fe12b0f36 [5.0.x] Refs #34995 -- Made Selenium tests more robust for admin_views and admin_widgets suites.
Depending on screen sizes, the selenium tests that would "click" or interact
with an element outside the scope of the visible window would produce test
failures (raising ElementNotInteractableException in CI runs).

This branch switches those to using ActionChains, which ensures that the click
(or other interaction) is performed only after successfully completing the
move to the relevant element.

Co-authored-by: Tom Carrick <tom@carrick.eu>

Backport of af2fd368156439b79e4c1eb2278c433246771e44 from main
2023-11-30 17:09:09 -03:00
Mariusz Felisiak
7f1dc67f53 [5.0.x] Fixed #35006 -- Fixed migrations crash when altering Meta.db_table_comment on SQLite.
Thanks Юрий for the report.

Regression in 78f163a4fb3937aca2e71786fbdd51a0ef39629e.
Backport of 37fc832a54ad37e75a898a2c8f9ab0820617c4af from main
2023-11-30 10:11:02 +01:00
Mariusz Felisiak
92af3d4d23 [5.0.x] Refs #34380 -- Added FORMS_URLFIELD_ASSUME_HTTPS transitional setting.
This allows early adoption of the new default "https".

Backport of a4931cd75a1780923b02e43475ba5447df3adb31 from main.
2023-11-28 20:08:10 +01:00
Tom Carrick
432bfa2615 [5.0.x] Fixed #34982 -- Fixed admin's read-only password widget and help texts alignment for tablet screen size.
Co-authored-by: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com>

Backport of 729266c6f29c7a0677b24926a86a767ef3078b26 from main
2023-11-27 15:20:22 -03:00
Nathaniel Conroy
d9ba8fa397 [5.0.x] Fixed #34992 -- Fixed DatabaseFeatures.allows_group_by_selected_pks on MariaDB with ONLY_FULL_GROUP_BY sql mode.
Regression in 041551d716b69ee7c81199eee86a2d10a72e15ab.

Backport of 0257426fe1fe9d146fd5813f09d909917ff59360 from main
2023-11-27 10:34:42 +01:00
Simon Charette
95dec210e8 [5.0.x] Fixed #34987 -- Fixed queryset crash when mixing aggregate and window annotations.
Regression in f387d024fc75569d2a4a338bfda76cc2f328f627.

Just like `OrderByList` the `ExpressionList` expression used to wrap
`Window.partition_by` must implement `get_group_by_cols` to ensure the
necessary grouping when mixing window expressions with aggregate
annotations is performed against the partition members and not the
partition expression itself.

This is necessary because while `partition_by` is implemented as
a source expression of `Window` it's actually a fragment of the WINDOW
expression at the SQL level and thus it should result in a group by its
members and not the sum of them.

Thanks ElRoberto538 for the report.
Backport of e76cc93b0168fa3abbafb9af1ab4535814b751f0 from main
2023-11-23 06:09:58 +01:00
Mariusz Felisiak
48eebdc63c [5.0.x] Fixed #34985 -- Fixed GeneratedFields.contribute_to_class() crash when apps are not populated.
Thanks Paolo Melchiorre for the report.

Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.
Backport of 101a85a5a06585ba16ecb25860146d034a8a55ec from main
2023-11-22 13:49:59 +01:00
Sarah Boyce
0c6ca52226 [5.0.x] Fixed #34984 -- Skipped GeneratedFields when remaking tables on SQLite.
Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.t

Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Co-authored-by: David Sanders <shang.xiao.sanders@gmail.com>

Backport of 828082dad954e87d09a99b53424e6faa1860ccc7 from main
2023-11-22 13:27:40 +01:00
Simon Charette
49f1ced863 [5.0.x] Fixed #34975 -- Fixed crash of conditional aggregate() over aggregations.
Adjustments made to solve_lookup_type to defer the resolving of
references for summarized aggregates failed to account for similar
requirements for lookup values which can also reference annotations
through Aggregate.filter.

Regression in b181cae2e3697b2e53b5b67ac67e59f3b05a6f0d.

Refs #25307.

Thanks Sergey Nesterenko for the report.

Backport of 7530cf3900ab98104edcde69e8a2a415e82b345a from main
2023-11-18 16:52:54 +01:00
Mariusz Felisiak
fcc55f8c26 [5.0.x] Refs #34944 -- Propagated system checks for GeneratedField.output_field.
Backport of c705625ebff0141ed2b95dd3c8174bda8270a47f from main
2023-11-14 20:22:41 +01:00