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>
The empty string is no longer special-cased since
c2ba59fc1da5287d6286e2c2aca4083d5bafe056.
Backport of d66137b39b1503ca3d4d4fac687251adbc845068 from main.
CharField.strip was introduced in 11cac1bd8ef7546ca32d9969d4348bf412dc6664, and is True by
default, meaning the previous example of " " raised a ValidationError.
Backport of 72de38239fdc97751e1e4ed245c7073c31bbd28a from main.
Third-party packages that provide storages need to rely on the
StorageHandler API in order to allow users to use the `storages` module
instance to override defaults. Minimally documenting these methods
allows package authors to rely on them.
Co-authored-by: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com>
Backport of 6dcab75d5d8c2ef18de15323930057e6fa9ec00f from main.
This added a missing db_default reference in docs/topics/db/models.txt,
and added a reference to the DatabaseDefault object.
Backport of 35ab2e018214479fa712d73f070198299ef670a1 from main.
Reorganized docs to list and explain the types of lazy relationships
that can be defined in related fields.
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
Backport of 65f3cfce59395131f318cf1ecba144530ed6609e from main.
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.
The system check "admin.E410" was already checking for this, but the
requirement was not listed in docs/ref/contrib/admin/index.txt.
Backport of f8ef4579ea710f93ec7edc93c6f3f216bd55d6be 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.
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.
Follow-up to 65ad4ade74dc9208b9d686a451cd6045df0c9c3a which added
counterintuitive to the wordlist. Removes unneeded (antiquated)
hyphenated usages.
See e.g. https://www.merriam-webster.com/dictionary/counterintuitive
Backport of 704192e478885762411252979021771ba23b8adb from main.
Previously, `-1` was converted to `"-1th"`. This has been updated to
return negative numbers "as is", so that for example `-1` is
converted to `"-1"`. This is now explicit in the docs.
Co-authored-by: Martin Jonson <artin.onson@gmail.com>
Backport of d3a7ed5bcc45000a6c3dd55d85a4caaa83299f83 from main.