| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also cleaned up label escaping and consolidated the test suite regarding
label_tag.
|
|
Thanks Baptiste Mispelon for the review.
|
|
|
|
Thanks Baptiste Mispelon for the suggestion.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
the `SCRIPT_NAME` environment parameter or the `FORCE_SCRIPT_NAME` setting, regardless of whether or not those have a trailing slash. Thanks to bmispelon for the review.
|
|
Thanks moof at metamoof.net for the report.
|
|
Without this, the 'new' assertion methods are not present with
Python 2.6.
|
|
Decimal is treated as float on SQLite, hence inspectdb can only
guess max_digits and decimal_places arguments.
|
|
Refs #5014.
|
|
Refs #19237.
|
|
Thanks Marc Aymerich for the report and the initial patch.
|
|
Thanks @carljm for the review.
|
|
Thanks nebstrebor for the report and antofik for the patch.
|
|
|
|
|
|
|
|
Queries can contain binary data undecodable with utf-8. In this
case, using the 'replace' errors mode when decoding seems like
an acceptable representation of the query.
Thanks Marcel Ryser for the report.
|
|
This is a fix to the wrong behavior that 15c3906eeb introduced.
|
|
|
|
|
|
Refs #3485.
|
|
|
|
Updated LogEntry.get_admin_url to use 'reverse' instead
of a hard-coded path.
|
|
In any case, setting those variables to non-ascii utf-8 bytestrings
is now considered a programming error.
|
|
Also don't compete with -W CLI option.
Thanks to Aymeric Augustin for the catch, and Claude Paroz for the patch.
|
|
middlewares
and streamed responses with respect to per-request urlconf.
|
|
This patch iproved two major parts in Django. First, the fields.related
was refactored. The main addition there was ForeignObject. Second, the
ORM now handles multicolumn joins in most cases, though there are still
cases that do not work correcly (split_exclude() for example).
In addition there were extesive changes to how GenericRelation works.
Before it was a fake m2m field, now it is a pure virtual fields and is
based on ForeignObject.
There is still much room for improvement. The related fields code is
still somewhat confusing, and how fields are represented in model._meta
should also be revisited.
This patch was written mostly by Jeremy Tillman with some final polish
by the committer.
|
|
|
|
Thanks to the many contributors who updated and improved the patch over
the life of this ticket.
|
|
Previously, depending on the database backend or the cursor type,
you'd need to double the percent signs in the query before passing
it to cursor.execute. Now cursor.execute consistently need percent
doubling whenever params argument is not None (placeholder substitution
will happen).
Thanks Thomas Güttler for the report and Walter Doekes for his work
on the patch.
|
|
This was a regression due to unicode_literals usage. Thanks Ivan
Virabyan for the report and the initial patch.
|
|
Python 2.6 has some different behaviour when checking
isinstance(foo, collections.Iterator).
|
|
This is provided as a new "validate_max" formset_factory option defaulting to
False, since the non-validating behavior of max_num is longstanding, and there
is certainly code relying on it. (In fact, even the Django admin relies on it
for the case where there are more existing inlines than the given max_num). It
may be that at some point we want to deprecate validate_max=False and
eventually remove the option, but this commit takes no steps in that direction.
This also fixes the DoS-prevention absolute_max enforcement so that it causes a
form validation error rather than an IndexError, and ensures that absolute_max
is always 1000 more than max_num, to prevent surprising changes in behavior
with max_num close to absolute_max.
Lastly, this commit fixes the previous inconsistency between a regular formset
and a model formset in the precedence of max_num and initial data. Previously
in a regular formset, if the provided initial data was longer than max_num, it
was truncated; in a model formset, all initial forms would be displayed
regardless of max_num. Now regular formsets are the same as model formsets; all
initial forms are displayed, even if more than max_num. (But if validate_max is
True, submitting these forms will result in a "too many forms" validation
error!) This combination of behaviors was chosen to keep the max_num validation
simple and consistent, and avoid silent data loss due to truncation of initial
data.
Thanks to Preston for discussion of the design choices.
|
|
|
|
Thanks to amosonn at yahoo.com for the report, @doda for the initial patch and
@datagrok for the revamped logic and test case.
|
|
The ticket dealt with a case where one query had .exclude() that
produced a subquery, the other query had a join to the same model that
was subqueried in the first query. This was already fixed in master, so
only test added.
|