1
0
mirror of https://github.com/django/django.git synced 2024-12-23 09:36:06 +00:00
Commit Graph

30999 Commits

Author SHA1 Message Date
Simon Charette
0701bb8e1f Fixed #33928 -- Avoided unnecessary queries when cascade updating.
Models that use SET, SET_NULL, and SET_DEFAULT as on_delete handler
don't have to fetch objects for the sole purpose of passing them back to
a follow up UPDATE query filtered by the retrieved objects primary key.

This was achieved by flagging SET handlers as _lazy_ and having the
collector logic defer object collections until the last minute. This
should ensure that the rare cases where custom on_delete handlers are
defined remain uncalled when when dealing with an empty collection of
instances.

This reduces the number queries required to apply SET handlers from
2 to 1 where the remaining UPDATE use the same predicate as the non
removed SELECT query.

In a lot of ways this is similar to the fast-delete optimization that
was added in #18676 but for updates this time. The conditions only
happen to be simpler in this case because SET handlers are always
terminal. They never cascade to more deletes that can be combined.

Thanks Renan GEHAN for the report.
2022-08-27 14:25:55 +02:00
Simon Charette
a9be1dc551 Refs #33928 -- Removed unnecessary attribute assignment on on-delete updates.
Model instances retrieved for bulk field update purposes are not exposed
to the outside world and thus are not required to be kept update to
date.
2022-08-27 14:25:50 +02:00
Mariusz Felisiak
081871bc20
Refs #30511 -- Updated docs about auto-incrementing primary keys on PostgreSQL.
Follow up to 2eea361eff.
2022-08-26 21:42:44 +02:00
Iuri de Silvio
166a3b3263 Fixed #33953 -- Reverted "Fixed #33201 -- Made RenameModel operation a noop for models with db_table."
Regression in afeafd6036.
This reverts afeafd6036.

Thanks Timothy Thomas for the report.
2022-08-26 06:14:44 +02:00
Simon Charette
71902e0d9f Fixed #33938 -- Fixed migration crash for m2m with a through model in another app.
Regression in aa4acc164d.

Thanks bryangeplant for the report.
2022-08-25 10:03:57 +02:00
Jan Pieter Waagmeester
2480554dc4
Fixed typo in django/db/models/fields/files.py comment. 2022-08-25 09:41:33 +02:00
Neeraj Kumar
9942f3fb49 Fixed #33830 -- Fixed VariableDoesNotExist when rendering ClearableFileInput. 2022-08-25 07:52:36 +02:00
Daniel Hahler
6f49b7b69b Refs #18707 -- Corrected django.test.Client signature in docs. 2022-08-25 07:24:25 +02:00
Willem Van Onsem
16fffc829c Fixed #33916 -- Added support for serialization of enum.Flag in migrations. 2022-08-25 06:43:48 +02:00
Simon Charette
b30c0081d4 Refs #27412 -- Confirmed support for executing Coalesce(subquery).
This has been supported for subqueries wrapped in Subquery since the expression
was introduced and for Queryset directly since Subquery resolves to sql.Query.

Piggy-backed on the existing tests covering Coalesce handling of EmptyResultSet
as it seemed like a proper location to combine testing.
2022-08-24 12:30:47 +02:00
Kanza
5f5401b114 Fixed #33920 -- Doc'd dependency of LOGGING_CONFIG callback on non-empty LOGGING. 2022-08-24 11:38:43 +02:00
David Wobrock
897f38fabe Fixed #33927 -- Fixed crash when displaying ArrayField with choices in admin. 2022-08-23 15:51:42 +02:00
Claude Paroz
4488a25cc9 Removed unused path variable in model_fields tests. 2022-08-23 15:34:07 +02:00
Claude Paroz
903ac2f364 Fixed #33949 -- Fixed fixture dirs duplicates with Path instances. 2022-08-23 13:24:18 +02:00
Alex Morega
7e6b537f5b
Fixed #33939 -- Used functools.partial() in transaction.on_commit() examples. 2022-08-23 11:55:30 +02:00
Mariusz Felisiak
e9fd2b5724
Refs #26511 -- Fixed json.KeyTextTransform() on MySQL/MariaDB. 2022-08-18 21:02:29 +02:00
Tom Carrick
bd36023100 Used CSS flex for admin's submit row. 2022-08-18 12:29:40 +02:00
Jacob Rief
aed60aee38 Fixed #33930 -- Eased customization of delete_confirmation.html template in the admin. 2022-08-18 10:51:12 +02:00
Benoît Vinot
e3cb8bcb7d Fixed #33932 -- Fixed altering AutoFields to OneToOneField on PostgreSQL.
Regression in 2eea361eff.
2022-08-17 17:06:00 +02:00
Carlton Gibson
e1056ed5a2 Refs #33491 -- Split CSS selected-row highlight selectors.
Combined selectors break the whole rule where :has() is not supported,
for example on Firefox.

Thanks to Marcelo Galigniana for the report.
2022-08-17 14:18:38 +02:00
Marcelo Galigniana
0aa2f16e63 Fixed #33491 -- Fixed change-list selected row-highlight on cancelled delete.
Selected rows where not highlighted when returning to the change-list
after clicking "No, take me back" on the deletion confirmation page.

This commit uses the CSS :has() pseudo-class to apply the highlight
without requiring the .selected class, which is added by JavaScript
on the click event.

Once all supported browsers have :has() available, the .selected
selector and the JavaScript to add the class can be removed.

Co-authored-by: Carlton Gibson <carlton.gibson@noumenal.es>
2022-08-17 11:49:34 +02:00
Tom Carrick
d46cc15c51 Fixed #33878 -- Switched to system fonts in CSS. 2022-08-17 10:19:00 +02:00
Tom Carrick
43ddce0aeb Fixed CSS variable indentation.
Matches 4-space indentation used elsewhere in project CSS files.
2022-08-17 10:19:00 +02:00
Willem Van Onsem
08688bd7dd Refs #33916 -- Added tests for serialization of enum.Flag in migrations. 2022-08-16 07:52:27 +02:00
Youssef
0cbbed49f4 Fixed #33909 -- Corrected django.dispatch.receiver() signature. 2022-08-16 06:13:15 +02:00
Youssef
247e25897b Fixed #33778 -- Updated build-system configuration.
This removes unnecessary wheel dependency and __legacy__ fallback.
2022-08-15 11:31:33 +02:00
Simon Charette
242499f2dc Fixed #26780 -- Added prefetch_related() support for sliced queries.
This was made possible by window function filtering support added in
f387d024fc.
2022-08-15 10:25:20 +02:00
Simon Charette
f387d024fc Refs #28333 -- Added partial support for filtering against window functions.
Adds support for joint predicates against window annotations through
subquery wrapping while maintaining errors for disjointed filter
attempts.

The "qualify" wording was used to refer to predicates against window
annotations as it's the name of a specialized Snowflake extension to
SQL that is to window functions what HAVING is to aggregates.

While not complete the implementation should cover most of the common
use cases for filtering against window functions without requiring
the complex subquery pushdown and predicate re-aliasing machinery to
deal with disjointed predicates against columns, aggregates, and window
functions.

A complete disjointed filtering implementation should likely be
deferred until proper QUALIFY support lands or the ORM gains a proper
subquery pushdown interface.
2022-08-15 08:26:26 +02:00
Haolun Chai
f3f9d03edf Fixed #33901 -- Skipped varchar_pattern_ops/text_pattern_ops index creation when db_collation is set. 2022-08-15 06:28:35 +02:00
Mohammadtaher Abbasi
e30d667842
Fixed #33921 -- Added release note for 5b8699e723. 2022-08-12 22:38:19 +02:00
Mariusz Felisiak
5c803bc070
Fixed #33919 -- Fixed adding AutoFields on PostgreSQL.
Thanks Jack Calvin Brown for the report.

Regression in 2eea361eff.
2022-08-12 17:30:23 +02:00
Claude Paroz
4fcba800b8 Fixed #33924 -- Deprecated BaseGeometryWidget.map_height/map_width attributes. 2022-08-12 13:26:35 +02:00
Simon Charette
8c3046daad Refs #28333 -- Moved SQLCompiler's forced column aliasing logic to get_select().
This extends query composability possibilities when dealing with
subqueries which is necessary to implement window function filtering.
2022-08-11 12:39:54 +02:00
Carlton Gibson
e34dfad0a3 Refs #30213 -- Removed post-startup check for Watchman availability.
This is checked at startup in get_reloader(). The runtime check ties
the implementation to Watchman excessively.
2022-08-11 11:02:03 +02:00
Simon Charette
35911078fa Replaced Expression.replace_references() with .replace_expressions().
The latter allows for more generic use cases beyond the currently
limited ones constraints validation has.

Refs #28333, #30581.
2022-08-11 09:53:10 +02:00
Mariusz Felisiak
8533a6af8d Optimized ExclusionConstraint.validate() a bit.
References to excluded fields are omitted in the replacement_map, so
there is no need to replace references before checking for exclusions.
2022-08-11 09:53:10 +02:00
Mariusz Felisiak
fc0942ada4 Used F.replace_references().
Follow up to 63884829ac.
2022-08-11 09:53:10 +02:00
Rust Saiargaliev
8403da3696
Fixed #28975 -- Made PostGIS backend skip extension creation if installed. 2022-08-10 13:42:53 +02:00
Mariusz Felisiak
721706f4c4
Refs #33895 -- Fixed Case() crash with filters that match everything in When() on Oracle.
Follow up to 036bb2b74a.
2022-08-10 12:28:39 +02:00
Jarosław Wygoda
9e7cb27a5b Refs #26029 -- Doc'd django.core.files.storage.default_storage. 2022-08-10 12:23:13 +02:00
David Sanders
e0ae1363ec Fixed #33905 -- Fixed CheckConstraint() validation on range fields.
Bug in 667105877e.
2022-08-09 20:13:21 +02:00
David Sanders
e0ac72fe80 Refs #33905 -- Added test for CheckConstraint() validation with ArrayField and __contains. 2022-08-09 20:06:59 +02:00
Ramil Yanbulatov
cccfb45d00 Refs #33842 -- Removed incorrect :file: role in contrib docs.
The file role is not appropriate for URLs and URL path-components.
2022-08-09 14:51:59 +02:00
Ramil Yanbulatov
d699594462 Refs #33842 -- Added :ttag: role in translations docs. 2022-08-09 14:51:59 +02:00
Ramil Yanbulatov
c6290bae9d Fixed #33842 -- Used :source: role for links to repo files on GitHub. 2022-08-09 14:44:51 +02:00
Mariusz Felisiak
f3a06b06b5
Removed unused InlineAdminForm.ordering_field().
Unused since its introduction in a19ed8aea3.
2022-08-09 09:26:12 +02:00
David Wobrock
036bb2b74a Fixed #33895 -- Fixed Case() crash with filters that match everything in When().
Thanks shukryzablah for the report.
2022-08-09 07:55:31 +02:00
Mariusz Felisiak
63884829ac
Fixed #33902 -- Fixed Meta.constraints validation crash with F() expressions.
Thanks Adam Zahradník for the report.

Bug in 667105877e.
2022-08-09 06:08:48 +02:00
Alessandro Baccini
c614e811f8
Fixed typo in docs/topics/i18n/translation.txt. 2022-08-08 19:43:36 +02:00
Kamil Turek
e03cdf76e7 Fixed #31721 -- Allowed ModelForm meta to specify form fields. 2022-08-08 09:46:05 +02:00