1
0
mirror of https://github.com/django/django.git synced 2025-03-13 10:50:55 +00:00

13821 Commits

Author SHA1 Message Date
Sarah Boyce
de1117ea8e Fixed #36224 -- Fixed shell imports when settings not configured.
Thank you Raffaella for the report. Thank you Tim Schilling and Natalia Bidart
for the reviews.
2025-03-07 15:34:56 +01:00
Sarah Boyce
647dca4132 Corrected test case in ExclusionConstraintTests.test_invalid_expressions(). 2025-03-07 11:28:00 +01:00
Sarah Boyce
55d89e25f4 Fixed CVE-2025-26699 -- Mitigated potential DoS in wordwrap template filter.
Thanks sw0rd1ight for the report.
2025-03-06 09:38:40 +01:00
antoliny0919
c09bceef68 Fixed #36217 -- Restored pre_save/post_save signal emission via LogEntry.save() for single-object deletion in the admin.
Regression in 40b3975e7d3e1464a733c69171ad7d38f8814280.

Thanks smiling-watermelon for the report.

Co-authored-by: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com>
2025-03-04 10:34:15 +01:00
Chris Muthig
4b977a5d72 Fixed #35444 -- Added generic support for Aggregate.order_by.
This moves the behaviors of `order_by` used in Postgres aggregates into
the `Aggregate` class. This allows for creating aggregate functions that
support this behavior across all database engines. This is shown by
moving the `StringAgg` class into the shared `aggregates` module and
adding support for all databases. The Postgres `StringAgg` class is now
a thin wrapper on the new shared `StringAgg` class.

Thank you Simon Charette for the review.
2025-03-03 11:37:00 +01:00
Simon Charette
fc30355107 Fixed #36198 -- Implemented unresolved transform expression replacement.
This allows the proper resolving of F("field__transform") when
performing constraint validation.

Thanks Tom Hall for the report and Sarah for the test.
2025-03-01 19:57:53 +01:00
Mariusz Felisiak
ff3aaf036f
Applied Black's 2025 stable style.
https://github.com/psf/black/releases/tag/25.1.0
2025-03-01 19:41:37 +01:00
Jacob Walls
77666f2fa1 Refs #35617 -- Removed hardcoded pk in test_bulk_update_custom_get_prep_value(). 2025-02-27 09:42:08 +01:00
Clifford Gama
5a1cae3a56 Removed outdated docstring in tests/basic/models.py. 2025-02-25 15:22:08 +01:00
Jonathan Ströbele
240421c7c4 Fixed #36186 -- Added forloop.length variable within a template for loop. 2025-02-24 16:25:53 +01:00
enprava
51cab4ad51 Fixed #35705 -- Added Rotate GIS database function to rotate geometries. 2025-02-23 16:20:57 +01:00
saJaeHyukc
f7017db92c Fixed #35839 -- Fixed crash when adding GeneratedField with db_comment on MySQL.
Thanks Simon Charette for the test.

Signed-off-by: saJaeHyukc <wogur981208@gmail.com>
2025-02-22 18:14:37 +01:00
Mariusz Felisiak
7500044a82 Refs #35167 -- Fixed test_bulk_update_custom_get_prep_value() crash on databases that don't support primitives in JSONFields.
For example on Oracle < 21c.
2025-02-20 08:14:18 +01:00
Jacob Walls
0bf412111b Fixed #35167 -- Delegated to super() in JSONField.get_db_prep_save().
Avoids reports of bulk_update() sending Cast expressions
to JSONField.get_prep_value().

Co-authored-by: Simon Charette <charette.s@gmail.com>
2025-02-18 17:28:24 +01:00
Simon Charette
c3a23aa02f Fixed #36197 -- Fixed improper many-to-many count() and exists() for non-pk to_field.
Regression in 66e47ac69a7e71cf32eee312d05668d8f1ba24bb.

Thanks mfontana-elem for the report and Sarah for the tests.
2025-02-18 11:43:27 +01:00
mimi89999
727731d76d Fixed #36179 -- Unhexed entries and removed duplicates in auth/common-passwords.txt.gz. 2025-02-18 08:58:49 +01:00
Mariusz Felisiak
efb7f9ced2
Refs #36005 -- Used datetime.UTC alias instead of datetime.timezone.utc.
datetime.UTC was added in Python 3.11.
2025-02-18 08:35:36 +01:00
Gaël Utard
0d1dd6bba0 Fixed #36191 -- Truncated the overwritten file content in FileSystemStorage. 2025-02-17 14:01:00 +01:00
Simon Charette
2d34ebe49a Refs #35967 -- Deprecated BaseDatabaseCreation.create_test_db(serialize).
Given there are no longer any internal usages of serialize=True and it
poses a risk to non-test databases integrity it seems appropriate to
deprecate it.
2025-02-16 08:43:42 +01:00
Simon Charette
dc69a63f84 Fixed #35967 -- Deferred test suite fixtures serialization after all dbs setup.
While the top-level objects fed to serialization are bound to the test
database being created nothing prevents code invoked during
serialization from performing queries against other connections entries
that haven't been swapped yet.

The reported example of that is a database router directing all reads to
a test mirror for a set of models involving auto-created many-to-many
fields. It might be tempting to address the many-to-many field case but
this a symptom of a larger problem where the test framework yields the
flow execution to user code that could interact with non-test databases
in unexpected ways.

Deferring test database fixture serialization until the point where all
connections entries have been swapped for their test equivalent ensures
that no code triggered during serialization can interact with non-test
databases.

Thanks Jake Howard for the report and Jacob Walls for the initial
investigation.
2025-02-16 07:58:15 +01:00
Simon Charette
df2c4952df Fixed #36173 -- Stabilized identity of Concat with an explicit output_field.
When Expression.__init__() overrides make use of *args, **kwargs
captures their argument values are respectively bound as a tuple and
dict instances. These composite values might themselves contain values
that require special identity treatments such as Concat(output_field)
as it's a Field instance.

Refs #30628 which introduced bound Field differentiation but lacked
argument captures handling.

Thanks erchenstein for the report.
2025-02-15 15:46:59 +01:00
Natalia
56e23b2319 Fixed #36158 -- Refactored shell command to improve auto-imported objects reporting. 2025-02-13 16:01:13 +01:00
Sarah Boyce
05002c153c Fixed #36182 -- Returned "?" if all parameters are removed in querystring template tag.
Thank you to David Feeley for the report and Natalia Bidart for the review.
2025-02-13 15:49:25 +01:00
Georgi Yanchev
0ee842bb45 Fixed #36146 -- Recorded applied/unapplied migrations recursively. 2025-02-13 12:52:06 +01:00
Simon Charette
8561100425 Fixed #36181 -- Allowed Subquery usage in __in lookups against composite pks.
Thanks Jacob Walls for the report.
2025-02-13 09:29:24 +01:00
Tim Graham
47c837a1ff
Refs #23919 -- Removed Python 2 workaround in fixtures_regress.
This reverts commit 7e19641b0359c23105cc27eebd9ccb1963546f2a.
2025-02-11 18:38:58 +01:00
Simon Charette
41239fe34d Fixed #36149 -- Allowed subquery values against tuple exact and in lookups.
Non-tuple exact and in lookups have specialized logic for subqueries that can
be adapted to properly assign select mask if unspecified and ensure the number
of involved members are matching on both side of the operator.
2025-02-11 09:08:35 +01:00
Natalia
0597e8ad1e Refs #35515 -- Fixed shell command verbose output when auto-importing 0 or 1 object.
Co-authored-by: Salvo Polizzi <salvopolizzi03@gmail.com>
2025-02-10 22:58:26 -03:00
Natalia
44ccd20375 Refs #35515 -- Refactored internal get_and_report_namespace in the shell command. 2025-02-10 22:58:26 -03:00
Mariusz Felisiak
17160819f3
Fixed #36105 -- Dropped support for MariaDB 10.5. 2025-02-09 12:57:40 +01:00
Simon Charette
089deb82b9 Fixed #36025 -- Fixed re-aliasing of iterable (in/range) lookups rhs.
In order for Expression.relabeled_clone to work appropriately its
get_source_expressions method must return all resolvable which wasn't the case
for Lookup when its right-hand-side is "direct" (not a compilable).

While refs #22288 added support for non-literals iterable right-hand-side
lookups it predated the subclassing of Lookup(Expression) refs #27021 which
could have been an opportunity to ensure right-hand-sides are always resolvable
(ValueList and ExpressionList).

Addressing all edge case with non-resolvable right-hand-sides would require
a significant refactor and deprecation of some parts of the Lookup interface so
this patch only focuses on FieldGetDbPrepValueIterableMixin (In and Range
lookups) by making sure that a right-hand-side containing resolvables are dealt
with appropriately during the resolving phase.

Thanks Aashay Amballi for the report.
2025-02-06 16:57:44 +01:00
brian
b13b8684a0 Fixed #36061 -- Added migration support for ManyToManyField.through_fields.
Added through_fields support to ManyToManyField.deconstruct.
Thanks to Simon Charette for pointers and the review.
2025-02-06 15:26:12 +01:00
Simon Charette
2598b371a9 Fixed #35677 -- Avoided non-sticky filtering of prefetched many-to-many.
The original queryset._next_is_sticky() call never had the intended effect as
no further filtering was applied internally after the pk__in lookup making it
a noop.

In order to be coherent with how related filters are applied when retrieving
objects from a related manager the effects of what calling _next_is_sticky()
prior to applying annotations and filters to the queryset provided for
prefetching are emulated by allowing the reuse of all pre-existing JOINs.

Thanks David Glenck and Thiago Bellini Ribeiro for the detailed reports and
tests.
2025-02-06 14:27:51 +01:00
Ben Cail
db7b1ae9f6 Refs #22997 -- Prevented requesting a default value for auto fields. 2025-02-06 13:53:43 +01:00
Natalia
1f33f21fca Fixed #36165 -- Made PostgreSQL's SchemaEditor._delete_index_sql() respect the "sql" argument.
This is a follow up of bd366ca2aeffa869b7dbc0b0aa01caea75e6dc31.

Thank you Daniel Finch for the report.
2025-02-05 20:15:39 -03:00
antoliny0919
1330cb5705 Fixed #36069 -- Fixed the delete button position in TabularInlines. 2025-02-04 07:56:23 +00:00
antoliny0919
b1324a680a Fixed #36055 -- Prevented overlap of object-tools buttons and page header in the admin. 2025-02-04 07:47:26 +00:00
Arnaldo Govenem
8ff1399f06 Fixed #36058 -- Refactored SpatialRefSysMixin.srs to use cached_property.
Replaced manual caching complexity with cached_property for efficiency.
Enhanced error handling with distinct messages for WKT and PROJ.4.

Thanks to Sarah Boyce for the suggestions.
2025-02-04 07:40:02 +00:00
Andrew Harris
5f30fd2358 Refs #36036 -- Added support for GEOSHasM. 2025-02-03 11:34:23 +00:00
Simon Charette
198b30168d Fixed #36135 -- Fixed reverse GenericRelation prefetching.
The get_(local|foreign)_related_value methods of GenericRelation must be
reversed because it defines (from|to)_fields and associated related_fields
in the reversed order as it's effectively a reverse GenericForeignKey
itself.

The related value methods must also account for the fact that referenced
primary key values might be stored as a string on the model defining the
GenericForeignKey but as integer on the model defining the GenericRelation.
This is achieved by calling the to_python method of the involved content type
in get_foreign_related_value just like GenericRelatedObjectManager does.

Lastly reverse many-to-one manager's prefetch_related_querysets should use
set_cached_value instead of direct attribute assignment as direct assignment
might are disallowed on ReverseManyToOneDescriptor descriptors. This is likely
something that was missed in f5233dc (refs #32511) when the is_cached guard
was added.

Thanks 1xinghuan for the report.
2025-02-03 09:39:14 +00:00
nessita
d15454a6e8
Fixed #36140 -- Allowed BaseUserCreationForm to define non required password fields.
Regression in e626716c28b6286f8cf0f8174077f3d2244f3eb3.

Thanks buffgecko12 for the report and Sarah Boyce for the review.
2025-02-01 22:49:07 -03:00
Simon Charette
4608d34b34 Fixed #36088 -- Avoided unnecessary DEFAULT usage on bulk_create().
When all values of a field with a db_default are DatabaseDefault, which
is the case most of the time, there is no point in specifying explicit
DEFAULT for all INSERT VALUES as that's what the database will do anyway
if not specified.

In the case of PostgreSQL doing so can even be harmful as it prevents
the usage of the UNNEST strategy and in the case of Oracle, which
doesn't support the usage of the DEFAULT keyword, it unnecessarily
requires providing literal db defaults.

Thanks Lily Foote for the review.
2025-02-01 18:43:10 +01:00
Mariusz Felisiak
0d131c1582
Bumped versions in pre-commit and npm configurations. 2025-02-01 08:53:14 +01:00
greg
89e28e13ec Fixed #36119 -- Fixed UnicodeEncodeError when attaching a file with 8bit Content-Transfer-Encoding. 2025-01-31 11:54:12 +00:00
sharonwoo
cbb0812683 Fixed #35235 -- Removed caching of BaseExpression._output_field_or_none. 2025-01-30 12:48:45 +00:00
Mohammadreza Eskandari
12b9ef38b3 Fixed #36121 -- Allowed customizing the admin site password change form. 2025-01-30 11:19:05 +00:00
Vinko Mlačić
c6ace896a2 Fixed #36155 -- Improved error handling when annotate arguments require an alias.
Regression in ed0cbc8d8b314e3b4a0305d0be3cf366d8ee4a74.
2025-01-30 11:17:17 +00:00
Sarah Boyce
5a2c1bc07d Fixed #36118 -- Accounted for multiple primary keys in bulk_update max_batch_size.
Co-authored-by: Simon Charette <charette.s@gmail.com>
2025-01-29 09:11:54 +00:00
Simon Charette
efec74b908 Fixed #36122 -- Raised FieldError when updating with composite reference value.
Thanks Jacob Walls for the report and test.
2025-01-28 12:05:53 +00:00
Jacob Walls
72ff18d41c Fixed #36120 -- Raised FieldError when targeting a composite primary key field with QuerySet.update(). 2025-01-28 10:19:43 +00:00