| Age | Commit message (Collapse) | Author |
|
Thanks Redouane Zait for the report.
|
|
|
|
Previous algo only worked if the first item was a part of the loop,
and you would get an infinite loop otherwise (see test).
To fix this, it was much easier to do a pre-pass.
A bonus is that you now get an error message that actually helps you debug
the dependency problem.
|
|
When the test client detects a redirect to a URL seen in the
currently followed chain it will now raise a RedirectCycleError
instead of just returning the first repeated response.
It will also complain when a single chain of redirects is longer
than 20, as this often means a redirect loop with varying URLs,
and even if it's not actually one, such long chains are likely
to be treated as loops by browsers.
Thanks Preston Timmons, Berker Peksag, and Tim Graham for reviews.
|
|
These assertions had been removed in 34ba86706f and 7fe554b2a3,
seemingly because they were referencing the wrong objects, and so
they started failing when the checking of object types (as well as
PK values) was introduced.
|
|
|
|
|
|
This is useful for debugging side effects affecting tests that
are usually executed before a given test. Full suite and pair
tests sort cases more or less deterministically, thus some test
cross-dependencies are easier to reveal by reversing the order.
Thanks Preston Timmons for the review.
|
|
|
|
|
|
|
|
Passed the engine instance to loaders. This is a prerequisite for
looking up configuration on the engine instance instead of global
settings.
This is backwards incompatible for custom template loaders that override
__init__. However the documentation doesn't talk about __init__ and the
way to pass arguments to custom template loaders isn't specified. I'm
considering it a private API.
|
|
Cancels 2f0566fa. Refs #4278.
|
|
../tests/shortcuts/views.py:45:1: E302 expected 2 blank lines, found 1
|
|
This change preserves backwards-compatibility for a very common misuse
of render_to_response which even occurred in the official documentation.
It fixes that misuse wherever it happened in the code base and docs.
Context.__init__ is documented as accepting a dict and nothing else.
Since Context is dict-like, Context(Context({})) could work to some
extent. However, things get complicated with RequestContext and that
gets in the way of refactoring the template engine. This is the real
rationale for this change.
|
|
|
|
Thanks Antti Häyrynen and Tim Graham for the report, and Aymeric
Augustin for the review.
|
|
|
|
specified.
|
|
Also added a unit test wit the simpler syntax which we have documented,
where the dictionary values are strings.
|
|
refs #20550
|
|
index/unique_together.
|
|
|
|
|
|
|
|
Refers to regression introduced in 7b4a994599b75a07cb07d1e0cc26b3bbf25ab7a6
|
|
django.core.exceptions.ValidationError.messages() and
django.db.backends.schema.BaseDatabaseSchemaEditor._alter_field():
Replaced reduce(operator.add, ...) w/uncoupled, explicit sum()
|
|
|
|
Added relabeled_clone() method to sql.Query to fix the problem. It
manifested itself in rare cases where at least double nested subquery's
filter condition might target non-existing alias.
Thanks to Trac alias ris for reporting the problem.
|
|
resolution.
This removes the concept of equality between operations to guarantee
compatilibity with Python 3.
Python 3 requires equality to result in identical object hashes. It's
impossible to implement a unique hash that preserves equality as
operations such as field creation depend on being able to accept
arbitrary dicts that cannot be hashed reliably.
Thanks Klaas van Schelven for the original patch in
13d613f80011852404198dfafd1f09c0c0ea42e6.
|
|
|
|
|
|
backwards.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Thanks to yamila-moreno for the idea of a skip message.
|
|
The test was testing a use case that doesn't happen in real world
projects: developers don't assign settings at run time (and Django
explicitly doesn't support it).
|
|
|
|
of an index_together
|
|
Changed the handling of extensions to be used for gettext. Now
obeying the --extension argument. find_files now only find the
given or default extensions and puts only these in the
TranslatableFiles. As a result there are no more confusing messages
for filetypes (extension) not handled by makemessages.
|
|
|
|
This provides the opportunity to move utility functions specific to the
Django Template Language outside of django.template.loader.
|
|
They can be replaced with override_settings and that makes the
corresponding tests much more obvious.
|