February 23, 2009
Welcome to Django 1.1 alpha 1!
This is the first in a series of preview/development releases leading up to the eventual release of Django 1.1, currently scheduled to take place in April 2009. This release is primarily targeted at developers who are interested in trying out new features and testing the Django codebase to help identify and resolve bugs prior to the final 1.1 release.
As such, this release is not intended for production use, and any such use is discouraged.
Two major enhancements have been added to Django’s object-relational mapper (ORM):
It’s now possible to run SQL aggregate queries (i.e. COUNT()
, MAX()
,
MIN()
, etc.) from within Django’s ORM. You can choose to either return the
results of the aggregate directly, or else annotate the objects in a
QuerySet
with the results of the aggregate
query.
This feature is available as new
aggregate()
and
annotate()
methods, and is covered in
detail in the ORM aggregation documentation.
Queries can now refer to a another field on the query and can traverse
relationships to refer to fields on related models. This is implemented in the
new F
object; for full details, including examples, consult the
documentation for F expressions.
Tests written using Django’s testing framework now run dramatically faster (as much as 10 times faster in many cases).
This was accomplished through the introduction of transaction-based tests: when
using django.test.TestCase
, your tests will now be run in a transaction
which is rolled back when finished, instead of by flushing and re-populating the
database. This results in an immense speedup for most types of unit tests. See
the documentation for TestCase
and TransactionTestCase
for a
full description, and some important notes on database support.
Other new features and changes introduced since Django 1.0 include:
CsrfViewMiddleware
checks incoming requests, and
CsrfResponseMiddleware
processes outgoing responses. The combined
CsrfMiddleware
class (which does both) remains for
backwards-compatibility, but using the split classes is now recommended in
order to allow fine-grained control of when and where the CSRF processing
takes place.reverse()
and code which uses it (e.g., the
{% url %}
template tag) now works with URLs in Django’s administrative
site, provided that the admin URLs are set up via include(admin.site.urls)
(sending admin requests to the admin.site.root
view still works, but URLs
in the admin will not be “reversible” when configured this way).include()
function in Django URLconf modules can now accept sequences
of URL patterns (generated by patterns()
) in addition to module names.hidden_fields()
and visible_fields()
,
which return the list of hidden – i.e., <input type="hidden">
– and
visible fields on the form, respectively.redirect_to
generic view
now accepts an additional keyword argument
permanent
. If permanent
is True
, the view will emit an HTTP
permanent redirect (status code 301). If False
, the view will emit an HTTP
temporary redirect (status code 302).week_day
– has been added for DateField
and DateTimeField
. This type of lookup accepts a number between 1 (Sunday)
and 7 (Saturday), and returns objects where the field value matches that day
of the week. See the full list of lookup types for
details.{% for %}
tag in Django’s template language now accepts an optional
{% empty %}
clause, to be displayed when {% for %}
is asked to loop
over an empty sequence. See the list of built-in template tags for examples of this.Before Django 1.1 goes final, several other preview/development releases will be made available. The current schedule consists of at least the following:
If deemed necessary, additional alpha, beta or release candidate packages will be issued prior to the final 1.1 release.
In order to provide a high-quality 1.1 release, we need your help. Although this alpha release is, again, not intended for production use, you can help the Django team by trying out the alpha codebase in a safe test environment and reporting any bugs or issues you encounter. The Django ticket tracker is the central place to search for open issues:
Please open new tickets if no existing ticket corresponds to a problem you’re running into.
Additionally, discussion of Django development, including progress toward the 1.1 release, takes place daily on the django-developers mailing list:
... and in the #django-dev
IRC channel on irc.freenode.net
. If you’re
interested in helping out with Django’s development, feel free to join the
discussions there.
Django’s online documentation also includes pointers on how to contribute to Django:
Contributions on any level – developing code, writing documentation or simply triaging tickets and helping to test proposed bugfixes – are always welcome and appreciated.
Development sprints for Django 1.1 will also be taking place at PyCon US 2009, on the dedicated sprint days (March 30 through April 2), and anyone who wants to help out is welcome to join in, either in person at PyCon or virtually in the IRC channel or on the mailing list.
Apr 12, 2017