123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- ===============================
- Django 1.1 beta 1 release notes
- ===============================
- March 23, 2009
- Welcome to Django 1.1 beta 1!
- This is the second 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.
- What's new in Django 1.1 beta 1
- ===============================
- .. seealso::
- The :doc:`1.1 alpha release notes </releases/1.1-alpha-1>`, which has a
- list of everything new between Django 1.0 and Django 1.1 alpha.
- Model improvements
- ------------------
- .. currentmodule:: django.db.models
- A number of features have been added to Django's model layer:
- "Unmanaged" models
- ~~~~~~~~~~~~~~~~~~
- You can now control whether or not Django creates database tables for a model
- using the :attr:`~Options.managed` model option. This defaults to ``True``,
- meaning that Django will create the appropriate database tables in
- :djadmin:`syncdb` and remove them as part of ``reset`` command. That
- is, Django *manages* the database table's lifecycle.
- If you set this to ``False``, however, no database table creating or deletion
- will be automatically performed for this model. This is useful if the model
- represents an existing table or a database view that has been created by some
- other means.
- For more details, see the documentation for the :attr:`~Options.managed`
- option.
- Proxy models
- ~~~~~~~~~~~~
- You can now create :ref:`proxy models <proxy-models>`: subclasses of existing
- models that only add Python behavior and aren't represented by a new table.
- That is, the new model is a *proxy* for some underlying model, which stores
- all the real data.
- All the details can be found in the :ref:`proxy models documentation
- <proxy-models>`. This feature is similar on the surface to unmanaged models,
- so the documentation has an explanation of :ref:`how proxy models differ from
- unmanaged models <proxy-vs-unmanaged-models>`.
- Deferred fields
- ~~~~~~~~~~~~~~~
- In some complex situations, your models might contain fields which could
- contain a lot of data (for example, large text fields), or require expensive
- processing to convert them to Python objects. If you know you don't need those
- particular fields, you can now tell Django not to retrieve them from the
- database.
- You'll do this with the new queryset methods
- :meth:`~django.db.models.query.QuerySet.defer` and
- :meth:`~django.db.models.query.QuerySet.only`.
- New admin features
- ------------------
- Since 1.1 alpha, a couple of new features have been added to Django's admin
- application:
- Editable fields on the change list
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- You can now make fields editable on the admin list views via the new
- :ref:`list_editable <admin-list-editable>` admin option. These fields will show
- up as form widgets on the list pages, and can be edited and saved in bulk.
- Admin "actions"
- ~~~~~~~~~~~~~~~
- You can now define :doc:`admin actions </ref/contrib/admin/actions>` that can perform
- some action to a group of models in bulk. Users will be able to select objects on
- the change list page and then apply these bulk actions to all selected objects.
- Django ships with one pre-defined admin action to delete a group of objects in
- one fell swoop.
- Testing improvements
- --------------------
- .. currentmodule:: django.test
- A couple of small but very useful improvements have been made to the
- :doc:`testing framework </topics/testing/index>`:
- * The test :class:`Client` now can automatically follow redirects with the
- ``follow`` argument to :meth:`Client.get` and :meth:`Client.post`. This
- makes testing views that issue redirects simpler.
- * It's now easier to get at the template context in the response returned
- the test client: you'll simply access the context as
- ``request.context[key]``. The old way, which treats ``request.context``
- as a list of contexts, one for each rendered template, is still
- available if you need it.
- Conditional view processing
- ---------------------------
- Django now has much better support for :doc:`conditional view processing
- </topics/conditional-view-processing>` using the standard ``ETag`` and
- ``Last-Modified`` HTTP headers. This means you can now easily short-circuit
- view processing by testing less-expensive conditions. For many views this can
- lead to a serious improvement in speed and reduction in bandwidth.
- Other improvements
- ------------------
- Finally, a grab-bag of other neat features made their way into this beta
- release, including:
- * The :djadmin:`dumpdata` management command now accepts individual
- model names as arguments, allowing you to export the data just from
- particular models.
- * There's a new :tfilter:`safeseq` template filter which works just like
- :tfilter:`safe` for lists, marking each item in the list as safe.
- * :doc:`Cache backends </topics/cache>` now support ``incr()`` and
- ``decr()`` commands to increment and decrement the value of a cache key.
- On cache backends that support atomic increment/decrement -- most
- notably, the memcached backend -- these operations will be atomic, and
- quite fast.
- * Django now can :doc:`easily delegate authentication to the Web server
- </howto/auth-remote-user>` via a new authentication backend that supports
- the standard ``REMOTE_USER`` environment variable used for this purpose.
- * There's a new :func:`django.shortcuts.redirect` function that makes it
- easier to issue redirects given an object, a view name, or a URL.
- * The ``postgresql_psycopg2`` backend now supports :ref:`native PostgreSQL
- autocommit <postgresql-notes>`. This is an advanced, PostgreSQL-specific
- feature, that can make certain read-heavy applications a good deal
- faster.
- The Django 1.1 roadmap
- ======================
- Before Django 1.1 goes final, at least one other preview/development release
- will be made available. The current schedule consists of at least the
- following:
- * Week of *April 2, 2009:* Django 1.1 release candidate. At this point all
- strings marked for translation must freeze to allow translations to
- be submitted in advance of the final release.
- * Week of *April 13, 2009:* Django 1.1 final.
- If deemed necessary, additional beta or release candidate packages will be
- issued prior to the final 1.1 release.
- What you can do to help
- =======================
- In order to provide a high-quality 1.1 release, we need your help. Although this
- beta release is, again, *not* intended for production use, you can help the
- Django team by trying out the beta 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:
- * https://code.djangoproject.com/timeline
- 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:
- * http://groups.google.com/group/django-developers
- ... 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:
- * :doc:`How to contribute to Django </internals/contributing/index>`
- 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.
|