mirror of
https://github.com/django/django.git
synced 2024-11-18 07:26:04 +00:00
31fadc1202
Additionally this patch solves the orthogonal problem that specialized `QuerySet` like `ValuesQuerySet` didn't inherit from the current `QuerySet` type. This wasn't an issue until now because we didn't officially support custom `QuerySet` but it became necessary with the introduction of this new feature. Thanks aaugustin, akaariai, carljm, charettes, mjtamlyn, shaib and timgraham for the reviews.
135 lines
5.5 KiB
Plaintext
135 lines
5.5 KiB
Plaintext
============================================
|
|
Django 1.7 release notes - UNDER DEVELOPMENT
|
|
============================================
|
|
|
|
Welcome to Django 1.7!
|
|
|
|
These release notes cover the `new features`_, as well as some `backwards
|
|
incompatible changes`_ you'll want to be aware of when upgrading from Django
|
|
1.6 or older versions. We've also dropped some features, which are detailed in
|
|
:doc:`our deprecation plan </internals/deprecation>`, and we've `begun the
|
|
deprecation process for some features`_.
|
|
|
|
.. _`new features`: `What's new in Django 1.7`_
|
|
.. _`backwards incompatible changes`: `Backwards incompatible changes in 1.7`_
|
|
.. _`begun the deprecation process for some features`: `Features deprecated in 1.7`_
|
|
|
|
Python compatibility
|
|
====================
|
|
|
|
Django 1.7 requires Python 2.7 or above, though we **highly recommend**
|
|
the latest minor release. Support for Python 2.6 has been dropped.
|
|
|
|
This change should affect only a small number of Django users, as most
|
|
operating-system vendors today are shipping Python 2.7 or newer as their default
|
|
version. If you're still using Python 2.6, however, you'll need to stick to
|
|
Django 1.6 until you can upgrade your Python version. Per :doc:`our support
|
|
policy </internals/release-process>`, Django 1.6 will continue to receive
|
|
security support until the release of Django 1.8.
|
|
|
|
What's new in Django 1.7
|
|
========================
|
|
|
|
Calling custom ``QuerySet`` methods from the ``Manager``
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The :meth:`QuerySet.as_manager() <django.db.models.query.QuerySet.as_manager>`
|
|
class method has been added to :ref:`create Manager with QuerySet methods
|
|
<create-manager-with-queryset-methods>`.
|
|
|
|
Admin shortcuts support time zones
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The "today" and "now" shortcuts next to date and time input widgets in the
|
|
admin are now operating in the :ref:`current time zone
|
|
<default-current-time-zone>`. Previously, they used the browser time zone,
|
|
which could result in saving the wrong value when it didn't match the current
|
|
time zone on the server.
|
|
|
|
In addition, the widgets now display a help message when the browser and
|
|
server time zone are different, to clarify how the value inserted in the field
|
|
will be interpreted.
|
|
|
|
Minor features
|
|
~~~~~~~~~~~~~~
|
|
|
|
* The new :attr:`UploadedFile.content_type_extra
|
|
<django.core.files.uploadedfile.UploadedFile.content_type_extra>` attribute
|
|
contains extra parameters passed to the ``content-type`` header on a file
|
|
upload.
|
|
|
|
* The ``enter`` argument was added to the
|
|
:data:`~django.test.signals.setting_changed` signal.
|
|
|
|
* The :meth:`QuerySet.update_or_create()
|
|
<django.db.models.query.QuerySet.update_or_create>` method was added.
|
|
|
|
* :attr:`~django.db.models.Options.app_label` is no longer required for models
|
|
that are defined in a ``models`` package within an app.
|
|
|
|
* The :meth:`Context.push() <django.template.Context.push>` method now returns
|
|
a context manager which automatically calls :meth:`pop()
|
|
<django.template.Context.pop>` upon exiting the ``with`` statement.
|
|
Additionally, :meth:`push() <django.template.Context.push>` now accepts
|
|
parameters that are passed to the ``dict`` constructor used to build the new
|
|
context level.
|
|
|
|
* The :class:`~django.utils.feedgenerator.Atom1Feed` syndication feed's
|
|
``updated`` element now utilizes `updateddate` instead of ``pubdate``,
|
|
allowing the ``published`` element to be included in the feed (which
|
|
relies on ``pubdate``).
|
|
|
|
* Buttons in :mod:`django.contrib.admin` now use the ``border-radius`` CSS
|
|
property for rounded corners rather than GIF background images.
|
|
|
|
Backwards incompatible changes in 1.7
|
|
=====================================
|
|
|
|
.. warning::
|
|
|
|
In addition to the changes outlined in this section, be sure to review the
|
|
:doc:`deprecation plan </internals/deprecation>` for any features that
|
|
have been removed. If you haven't updated your code within the
|
|
deprecation timeline for a given feature, its removal may appear as a
|
|
backwards incompatible change.
|
|
|
|
Miscellaneous
|
|
~~~~~~~~~~~~~
|
|
|
|
* The :meth:`django.core.files.uploadhandler.FileUploadHandler.new_file()`
|
|
method is now passed an additional ``content_type_extra`` parameter. If you
|
|
have a custom :class:`~django.core.files.uploadhandler.FileUploadHandler`
|
|
that implements ``new_file()``, be sure it accepts this new parameter.
|
|
|
|
* :class:`ModelFormSet<django.forms.models.BaseModelFormSet>`'s no longer
|
|
delete instances when ``save(commit=False)`` is called. See
|
|
:attr:`~django.forms.formsets.BaseFormSet.can_delete` for instructions on how
|
|
to manually delete objects from deleted forms.
|
|
|
|
Features deprecated in 1.7
|
|
==========================
|
|
|
|
``django.utils.dictconfig``
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
``django.utils.dictconfig`` was a copy of :mod:`logging.config` provided for
|
|
Python versions prior to 2.7. It has been deprecated.
|
|
|
|
``django.utils.unittest``
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
``django.utils.unittest`` provided uniform access to the ``unittest2`` library
|
|
on all Python versions. Since ``unittest2`` became the standard library's
|
|
:mod:`unittest` module in Python 2.7, and Django 1.7 drops support for older
|
|
Python versions, this module isn't useful anymore. It has been deprecated. Use
|
|
:mod:`unittest` instead.
|
|
|
|
Custom SQL location for models package
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Previously, if models were organized in a package (``myapp/models/``) rather
|
|
than simply ``myapp/models.py``, Django would look for :ref:`initial SQL data
|
|
<initial-sql>` in ``myapp/models/sql/``. This bug has been fixed so that Django
|
|
will search ``myapp/sql/`` as documented. The old location will continue to
|
|
work until Django 1.9.
|