mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Removed references to changes made in 1.2.
Thanks Florian Apolloner for the patch.
This commit is contained in:
@@ -64,11 +64,8 @@ Fields
|
||||
|
||||
.. attribute:: models.User.username
|
||||
|
||||
Required. 30 characters or fewer. Alphanumeric characters only
|
||||
(letters, digits and underscores).
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
Usernames may now contain ``@``, ``+``, ``.`` and ``-`` characters.
|
||||
Required. 30 characters or fewer. Usernames may contain alphanumeric,
|
||||
``_``, ``@``, ``+``, ``.`` and ``-`` characters.
|
||||
|
||||
.. attribute:: models.User.first_name
|
||||
|
||||
@@ -207,8 +204,6 @@ Methods
|
||||
Returns a set of permission strings that the user has, through his/her
|
||||
groups.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
If ``obj`` is passed in, only returns the group permissions for
|
||||
this specific object.
|
||||
|
||||
@@ -217,8 +212,6 @@ Methods
|
||||
Returns a set of permission strings that the user has, both through
|
||||
group and user permissions.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
If ``obj`` is passed in, only returns the permissions for this
|
||||
specific object.
|
||||
|
||||
@@ -229,8 +222,6 @@ Methods
|
||||
`permissions`_ section below). If the user is inactive, this method will
|
||||
always return ``False``.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
If ``obj`` is passed in, this method won't check for a permission for
|
||||
the model, but for this specific object.
|
||||
|
||||
@@ -241,8 +232,6 @@ Methods
|
||||
``"<app label>.<permission codename>"``. If the user is inactive,
|
||||
this method will always return ``False``.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
If ``obj`` is passed in, this method won't check for permissions for
|
||||
the model, but for the specific object.
|
||||
|
||||
@@ -349,9 +338,6 @@ Django requires add *and* change permissions as a slight security measure.
|
||||
Changing passwords
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. versionadded:: 1.2
|
||||
The ``manage.py changepassword`` command was added.
|
||||
|
||||
:djadmin:`manage.py changepassword *username* <changepassword>` offers a method
|
||||
of changing a User's password from the command line. It prompts you to
|
||||
change the password of a given user which you must enter twice. If
|
||||
@@ -1046,8 +1032,6 @@ The login_required decorator
|
||||
|
||||
{% endblock %}
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
If you are using alternate authentication (see
|
||||
:ref:`authentication-backends`) you can pass a custom authentication form
|
||||
to the login view via the ``authentication_form`` parameter. This form must
|
||||
@@ -1140,8 +1124,6 @@ includes a few other useful built-in views located in
|
||||
* ``post_change_redirect``: The URL to redirect to after a successful
|
||||
password change.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
* ``password_change_form``: A custom "change password" form which must
|
||||
accept a ``user`` keyword argument. The form is responsible for
|
||||
actually changing the user's password. Defaults to
|
||||
@@ -1899,8 +1881,6 @@ the ``auth_permission`` table most of the time.
|
||||
Authorization for anonymous users
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
|
||||
An anonymous user is one that is not authenticated i.e. they have provided no
|
||||
valid authentication details. However, that does not necessarily mean they are
|
||||
not authorized to do anything. At the most basic level, most Web sites
|
||||
|
||||
@@ -83,12 +83,6 @@ two most common are `python-memcached`_ and `pylibmc`_.
|
||||
.. _`python-memcached`: ftp://ftp.tummy.com/pub/python-memcached/
|
||||
.. _`pylibmc`: http://sendapatch.se/projects/pylibmc/
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
In Django 1.0 and 1.1, you could also use ``cmemcache`` as a binding.
|
||||
However, support for this library was deprecated in 1.2 due to
|
||||
a lack of maintenance on the ``cmemcache`` library itself. Support for
|
||||
``cmemcache`` will be removed completely in Django 1.4.
|
||||
|
||||
.. versionchanged:: 1.3
|
||||
Support for ``pylibmc`` was added.
|
||||
|
||||
@@ -493,8 +487,6 @@ more on these decorators.
|
||||
|
||||
.. _i18n-cache-key:
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
If :setting:`USE_I18N` is set to ``True`` then the generated cache key will
|
||||
include the name of the active :term:`language<language code>` -- see also
|
||||
:ref:`how-django-discovers-language-preference`). This allows you to easily
|
||||
@@ -737,8 +729,6 @@ actually exist in the cache (and haven't expired)::
|
||||
>>> cache.get_many(['a', 'b', 'c'])
|
||||
{'a': 1, 'b': 2, 'c': 3}
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
To set multiple values more efficiently, use ``set_many()`` to pass a dictionary
|
||||
of key-value pairs::
|
||||
|
||||
@@ -753,15 +743,11 @@ clearing the cache for a particular object::
|
||||
|
||||
>>> cache.delete('a')
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
If you want to clear a bunch of keys at once, ``delete_many()`` can take a list
|
||||
of keys to be cleared::
|
||||
|
||||
>>> cache.delete_many(['a', 'b', 'c'])
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
Finally, if you want to delete all the keys in the cache, use
|
||||
``cache.clear()``. Be careful with this; ``clear()`` will remove *everything*
|
||||
from the cache, not just the keys set by your application. ::
|
||||
|
||||
@@ -881,8 +881,6 @@ field. This would normally cause a problem in abstract base classes, since the
|
||||
fields on this class are included into each of the child classes, with exactly
|
||||
the same values for the attributes (including :attr:`~django.db.models.ForeignKey.related_name`) each time.
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
|
||||
To work around this problem, when you are using :attr:`~django.db.models.ForeignKey.related_name` in an
|
||||
abstract base class (only), part of the name should contain
|
||||
``'%(app_label)s'`` and ``'%(class)s'``.
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
Multiple databases
|
||||
==================
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
This topic guide describes Django's support for interacting with
|
||||
multiple databases. Most of the rest of Django's documentation assumes
|
||||
you are interacting with a single database. If you want to interact
|
||||
|
||||
@@ -18,8 +18,6 @@ __ `executing custom SQL directly`_
|
||||
Performing raw queries
|
||||
======================
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
The ``raw()`` manager method can be used to perform raw SQL queries that
|
||||
return model instances:
|
||||
|
||||
|
||||
@@ -365,8 +365,6 @@ subtype. For example::
|
||||
Email backends
|
||||
==============
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
The actual sending of an email is handled by the email backend.
|
||||
|
||||
The email backend class has the following methods:
|
||||
|
||||
@@ -102,15 +102,12 @@ limit the maximum number of empty forms the formset will display::
|
||||
<tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" id="id_form-0-title" /></td></tr>
|
||||
<tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" id="id_form-0-pub_date" /></td></tr>
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
|
||||
If the value of ``max_num`` is greater than the number of existing
|
||||
objects, up to ``extra`` additional blank forms will be added to the formset,
|
||||
so long as the total number of forms does not exceed ``max_num``.
|
||||
|
||||
A ``max_num`` value of ``None`` (the default) puts no limit on the number of
|
||||
forms displayed. Please note that the default value of ``max_num`` was changed
|
||||
from ``0`` to ``None`` in version 1.2 to allow ``0`` as a valid value.
|
||||
forms displayed.
|
||||
|
||||
Formset validation
|
||||
------------------
|
||||
@@ -210,8 +207,6 @@ pre-filled, and is also used to determine how many forms are required. You
|
||||
will probably never need to override either of these methods, so please be
|
||||
sure you understand what they do before doing so.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
``empty_form``
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
@@ -109,9 +109,6 @@ Model field Form field
|
||||
``URLField`` ``URLField``
|
||||
=============================== ========================================
|
||||
|
||||
.. versionadded:: 1.2
|
||||
The ``BigIntegerField`` is new in Django 1.2.
|
||||
|
||||
|
||||
As you might expect, the ``ForeignKey`` and ``ManyToManyField`` model field
|
||||
types are special cases:
|
||||
@@ -362,9 +359,6 @@ Since the Author model has only 3 fields, 'name', 'title', and
|
||||
Overriding the default field types or widgets
|
||||
---------------------------------------------
|
||||
|
||||
.. versionadded:: 1.2
|
||||
The ``widgets`` attribute is new in Django 1.2.
|
||||
|
||||
The default field types, as described in the `Field types`_ table above, are
|
||||
sensible defaults. If you have a ``DateField`` in your model, chances are you'd
|
||||
want that to be represented as a ``DateField`` in your form. But
|
||||
@@ -670,8 +664,6 @@ are saved properly.
|
||||
Limiting the number of editable objects
|
||||
---------------------------------------
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
|
||||
As with regular formsets, you can use the ``max_num`` and ``extra`` parameters
|
||||
to ``modelformset_factory`` to limit the number of extra forms displayed.
|
||||
|
||||
@@ -698,8 +690,6 @@ so long as the total number of forms does not exceed ``max_num``::
|
||||
<tr><th><label for="id_form-2-name">Name:</label></th><td><input id="id_form-2-name" type="text" name="form-2-name" value="Walt Whitman" maxlength="100" /><input type="hidden" name="form-2-id" value="2" id="id_form-2-id" /></td></tr>
|
||||
<tr><th><label for="id_form-3-name">Name:</label></th><td><input id="id_form-3-name" type="text" name="form-3-name" maxlength="100" /><input type="hidden" name="form-3-id" id="id_form-3-id" /></td></tr>
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
|
||||
A ``max_num`` value of ``None`` (the default) puts no limit on the number of
|
||||
forms displayed.
|
||||
|
||||
|
||||
@@ -314,9 +314,6 @@ that should be called if none of the URL patterns match.
|
||||
By default, this is ``'django.views.defaults.page_not_found'``. That default
|
||||
value should suffice.
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
Previous versions of Django only accepted strings representing import paths.
|
||||
|
||||
handler500
|
||||
----------
|
||||
|
||||
@@ -329,9 +326,6 @@ have runtime errors in view code.
|
||||
By default, this is ``'django.views.defaults.server_error'``. That default
|
||||
value should suffice.
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
Previous versions of Django only accepted strings representing import paths.
|
||||
|
||||
Notes on capturing text in URLs
|
||||
===============================
|
||||
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
Format localization
|
||||
===================
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
|
||||
@@ -1039,8 +1039,6 @@ Django comes with a tool, :djadmin:`django-admin.py makemessages
|
||||
commands from the GNU gettext toolset: ``xgettext``, ``msgfmt``,
|
||||
``msgmerge`` and ``msguniq``.
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
|
||||
The minimum version of the ``gettext`` utilities supported is 0.15.
|
||||
|
||||
To create or update a message file, run this command::
|
||||
|
||||
@@ -188,11 +188,6 @@ In particular, :ref:`lazy translation objects <lazy-translations>` need a
|
||||
Natural keys
|
||||
------------
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
The ability to use natural keys when serializing/deserializing data was
|
||||
added in the 1.2 release.
|
||||
|
||||
The default serialization strategy for foreign keys and many-to-many relations
|
||||
is to serialize the value of the primary key(s) of the objects in the relation.
|
||||
This strategy works well for most objects, but it can cause difficulty in some
|
||||
|
||||
@@ -291,9 +291,6 @@ label::
|
||||
|
||||
$ ./manage.py test animals.AnimalTestCase.test_animals_can_speak
|
||||
|
||||
.. versionadded:: 1.2
|
||||
The ability to select individual doctests was added.
|
||||
|
||||
You can use the same rules if you're using doctests. Django will use the
|
||||
test label as a path to the test method or class that you want to run.
|
||||
If your ``models.py`` or ``tests.py`` has a function with a doctest, or
|
||||
@@ -311,9 +308,6 @@ If you're using a ``__test__`` dictionary to specify doctests for a
|
||||
module, Django will use the label as a key in the ``__test__`` dictionary
|
||||
for defined in ``models.py`` and ``tests.py``.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
You can now trigger a graceful exit from a test run by pressing ``Ctrl-C``.
|
||||
|
||||
If you press ``Ctrl-C`` while the tests are running, the test runner will
|
||||
wait for the currently running test to complete and then exit gracefully.
|
||||
During a graceful exit the test runner will output details of any test
|
||||
@@ -392,8 +386,6 @@ advanced settings.
|
||||
Testing master/slave configurations
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
If you're testing a multiple database configuration with master/slave
|
||||
replication, this strategy of creating test databases poses a problem.
|
||||
When the test databases are created, there won't be any replication,
|
||||
@@ -1387,8 +1379,6 @@ Multi-database support
|
||||
|
||||
.. attribute:: TestCase.multi_db
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
Django sets up a test database corresponding to every database that is
|
||||
defined in the :setting:`DATABASES` definition in your settings
|
||||
file. However, a big part of the time taken to run a Django TestCase
|
||||
@@ -1512,9 +1502,6 @@ Assertions
|
||||
|
||||
.. currentmodule:: django.test
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
Added ``msg_prefix`` argument.
|
||||
|
||||
As Python's normal :class:`unittest.TestCase` class implements assertion methods
|
||||
such as :meth:`~unittest.TestCase.assertTrue` and
|
||||
:meth:`~unittest.TestCase.assertEqual`, Django's custom :class:`TestCase` class
|
||||
@@ -2022,9 +2009,6 @@ process to satisfy whatever testing requirements you may have.
|
||||
Defining a test runner
|
||||
----------------------
|
||||
|
||||
.. versionchanged:: 1.2
|
||||
Prior to 1.2, test runners were a single function, not a class.
|
||||
|
||||
.. currentmodule:: django.test.simple
|
||||
|
||||
A test runner is a class defining a ``run_tests()`` method. Django ships
|
||||
|
||||
Reference in New Issue
Block a user