Ticket #18934: 18934.diff

File 18934.diff, 49.0 KB (added by Tim Graham, 5 years ago)
  • docs/howto/custom-template-tags.txt

    diff --git a/docs/howto/custom-template-tags.txt b/docs/howto/custom-template-tags.txt
    index 5b27af8..70b6288 100644
    a b A few things to note about the ``simple_tag`` helper function: 
    760760* If the argument was a template variable, our function is passed the
    761761  current value of the variable, not the variable itself.
    762762
    763 .. versionadded:: 1.3
    764 
    765763If your template tag needs to access the current context, you can use the
    766764``takes_context`` argument when registering your tag:
    767765
  • docs/howto/error-reporting.txt

    diff --git a/docs/howto/error-reporting.txt b/docs/howto/error-reporting.txt
    index 64af2a0..78e797b 100644
    a b setting. 
    4444
    4545.. seealso::
    4646
    47    .. versionadded:: 1.3
    48 
    4947   Server error emails are sent using the logging framework, so you can
    5048   customize this behavior by :doc:`customizing your logging configuration
    5149   </topics/logging>`.
    The best way to disable this behavior is to set 
    9997
    10098.. seealso::
    10199
    102    .. versionadded:: 1.3
    103 
    104100   404 errors are logged using the logging framework. By default, these log
    105101   records are ignored, but you can use them for error reporting by writing a
    106102   handler and :doc:`configuring logging </topics/logging>` appropriately.
  • docs/howto/static-files.txt

    diff --git a/docs/howto/static-files.txt b/docs/howto/static-files.txt
    index f8c5918..964b5fa 100644
    a b  
    22Managing static files
    33=====================
    44
    5 .. versionadded:: 1.3
    6 
    75Django developers mostly concern themselves with the dynamic parts of web
    86applications -- the views and templates that render anew for each request. But
    97web applications have other parts: the static files (images, CSS,
  • docs/misc/api-stability.txt

    diff --git a/docs/misc/api-stability.txt b/docs/misc/api-stability.txt
    index 2839ee3..4f232e7 100644
    a b Certain APIs are explicitly marked as "internal" in a couple of ways: 
    155155Local flavors
    156156-------------
    157157
    158 .. versionchanged:: 1.3
    159 
    160158:mod:`django.contrib.localflavor` contains assorted pieces of code
    161159that are useful for particular countries or cultures. This data is
    162160local in nature, and is subject to change on timelines that will
  • docs/ref/contrib/admin/index.txt

    diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt
    index 66a5a2c..2aabc55 100644
    a b subclass:: 
    129129
    130130        date_hierarchy = 'pub_date'
    131131
    132     .. versionadded:: 1.3
    133 
    134132    This will intelligently populate itself based on available data,
    135133    e.g. if all the dates are in one month, it'll show the day-level
    136134    drill-down only.
    subclass:: 
    576574          class PersonAdmin(ModelAdmin):
    577575              list_filter = ('is_staff', 'company')
    578576
    579       .. versionadded:: 1.3
    580 
    581577      Field names in ``list_filter`` can also span relations
    582578      using the ``__`` lookup, for example::
    583579
    subclass:: 
    748744
    749745.. attribute:: ModelAdmin.paginator
    750746
    751     .. versionadded:: 1.3
    752 
    753747    The paginator class to be used for pagination. By default,
    754748    :class:`django.core.paginator.Paginator` is used. If the custom paginator
    755749    class doesn't have the same constructor interface as
    templates used by the :class:`ModelAdmin` views: 
    966960
    967961.. method:: ModelAdmin.delete_model(self, request, obj)
    968962
    969     .. versionadded:: 1.3
    970 
    971963    The ``delete_model`` method is given the ``HttpRequest`` and a model
    972964    instance. Use this method to do pre- or post-delete operations.
    973965
    templates used by the :class:`ModelAdmin` views: 
    12131205
    12141206.. method:: ModelAdmin.get_paginator(queryset, per_page, orphans=0, allow_empty_first_page=True)
    12151207
    1216     .. versionadded:: 1.3
    1217 
    12181208    Returns an instance of the paginator to use for this view. By default,
    12191209    instantiates an instance of :attr:`paginator`.
    12201210
    on your ``ModelAdmin``:: 
    12951285            }
    12961286            js = ("my_code.js",)
    12971287
    1298 .. versionchanged:: 1.3
    1299 
    13001288The :doc:`staticfiles app </ref/contrib/staticfiles>` prepends
    13011289:setting:`STATIC_URL` (or :setting:`MEDIA_URL` if :setting:`STATIC_URL` is
    13021290``None``) to any media paths. The same rules apply as :ref:`regular media
    adds some of its own (the shared features are actually defined in the 
    13941382- :attr:`~ModelAdmin.exclude`
    13951383- :attr:`~ModelAdmin.filter_horizontal`
    13961384- :attr:`~ModelAdmin.filter_vertical`
     1385- :attr:`~ModelAdmin.ordering`
    13971386- :attr:`~ModelAdmin.prepopulated_fields`
     1387- :meth:`~ModelAdmin.queryset`
    13981388- :attr:`~ModelAdmin.radio_fields`
    13991389- :attr:`~ModelAdmin.readonly_fields`
    14001390- :attr:`~InlineModelAdmin.raw_id_fields`
    14011391- :meth:`~ModelAdmin.formfield_for_foreignkey`
    14021392- :meth:`~ModelAdmin.formfield_for_manytomany`
    14031393
    1404 .. versionadded:: 1.3
    1405 
    1406 - :attr:`~ModelAdmin.ordering`
    1407 - :meth:`~ModelAdmin.queryset`
    1408 
    14091394.. versionadded:: 1.4
    14101395
    14111396- :meth:`~ModelAdmin.has_add_permission`
    Templates can override or extend base admin templates as described in 
    18131798
    18141799.. attribute:: AdminSite.login_form
    18151800
    1816     .. versionadded:: 1.3
    1817 
    18181801    Subclass of :class:`~django.contrib.auth.forms.AuthenticationForm` that
    18191802    will be used by the admin site login view.
    18201803
  • docs/ref/contrib/comments/example.txt

    diff --git a/docs/ref/contrib/comments/example.txt b/docs/ref/contrib/comments/example.txt
    index e78d83c..2bff778 100644
    a b enable it in your project's ``urls.py``: 
    152152
    153153Now you should have the latest comment feeds being served off ``/feeds/latest/``.
    154154
    155 .. versionchanged:: 1.3
    156 
    157 Prior to Django 1.3, the LatestCommentFeed was deployed using the
    158 syndication feed view:
    159 
    160 .. code-block:: python
    161 
    162     from django.conf.urls import patterns
    163     from django.contrib.comments.feeds import LatestCommentFeed
    164 
    165     feeds = {
    166         'latest': LatestCommentFeed,
    167     }
    168 
    169     urlpatterns = patterns('',
    170     # ...
    171         (r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed',
    172             {'feed_dict': feeds}),
    173     # ...
    174     )
    175 
    176155
    177156Moderation
    178157==========
  • docs/ref/contrib/comments/moderation.txt

    diff --git a/docs/ref/contrib/comments/moderation.txt b/docs/ref/contrib/comments/moderation.txt
    index f03c7fd..39b3ea7 100644
    a b Simply subclassing :class:`CommentModerator` and changing the values of these 
    136136options will automatically enable the various moderation methods for any
    137137models registered using the subclass.
    138138
    139 .. versionchanged:: 1.3
    140 
    141 ``moderate_after`` and ``close_after`` now accept 0 as a valid value.
    142 
    143139Adding custom moderation methods
    144140--------------------------------
    145141
  • docs/ref/contrib/contenttypes.txt

    diff --git a/docs/ref/contrib/contenttypes.txt b/docs/ref/contrib/contenttypes.txt
    index 0226435..aba6ebb 100644
    a b pointing at it will be deleted as well. In the example above, this means that 
    415415if a ``Bookmark`` object were deleted, any ``TaggedItem`` objects pointing at
    416416it would be deleted at the same time.
    417417
    418 .. versionadded:: 1.3
    419 
    420418Unlike :class:`~django.db.models.ForeignKey`,
    421419:class:`~django.contrib.contenttypes.generic.GenericForeignKey` does not accept
    422420an :attr:`~django.db.models.ForeignKey.on_delete` argument to customize this
  • docs/ref/contrib/flatpages.txt

    diff --git a/docs/ref/contrib/flatpages.txt b/docs/ref/contrib/flatpages.txt
    index 3de4497..38cedc4 100644
    a b template. 
    239239Getting a list of :class:`~django.contrib.flatpages.models.FlatPage` objects in your templates
    240240==============================================================================================
    241241
    242 .. versionadded:: 1.3
    243 
    244242The flatpages app provides a template tag that allows you to iterate
    245243over all of the available flatpages on the :ref:`current site
    246244<hooking-into-current-site-from-views>`.
  • docs/ref/contrib/gis/geos.txt

    diff --git a/docs/ref/contrib/gis/geos.txt b/docs/ref/contrib/gis/geos.txt
    index f4e706d..b8fb7b4 100644
    a b Returns a boolean indicating whether the geometry is valid. 
    232232
    233233.. attribute:: GEOSGeometry.valid_reason
    234234
    235 .. versionadded:: 1.3
    236 
    237235Returns a string describing the reason why a geometry is invalid.
    238236
    239237.. attribute:: GEOSGeometry.srid
    corresponding to the SRID of the geometry or ``None``. 
    530528
    531529.. method:: GEOSGeometry.transform(ct, clone=False)
    532530
    533 .. versionchanged:: 1.3
    534 
    535531Transforms the geometry according to the given coordinate transformation paramter
    536532(``ct``), which may be an integer SRID, spatial reference WKT string,
    537533a PROJ.4 string, a :class:`~django.contrib.gis.gdal.SpatialReference` object, or a
  • docs/ref/contrib/gis/testing.txt

    diff --git a/docs/ref/contrib/gis/testing.txt b/docs/ref/contrib/gis/testing.txt
    index d12c884..86979f0 100644
    a b your settings:: 
    134134GeoDjango tests
    135135===============
    136136
    137 .. versionchanged:: 1.3
    138 
    139137GeoDjango's test suite may be run in one of two ways, either by itself or
    140138with the rest of :ref:`Django's unit tests <running-unit-tests>`.
    141139
  • docs/ref/contrib/localflavor.txt

    diff --git a/docs/ref/contrib/localflavor.txt b/docs/ref/contrib/localflavor.txt
    index 4595f51..0d1319e 100644
    a b Austria (``at``) 
    267267Belgium (``be``)
    268268================
    269269
    270 .. versionadded:: 1.3
    271 
    272270.. class:: be.forms.BEPhoneNumberField
    273271
    274272    A form field that validates input as a Belgium phone number, with one of
    Indonesia (``id``) 
    658656
    659657    A ``Select`` widget that uses a list of Indonesian provinces as its choices.
    660658
    661 .. versionchanged:: 1.3
    662     The province "Nanggroe Aceh Darussalam (NAD)" has been removed
    663     from the province list in favor of the new official designation
    664     "Aceh (ACE)".
    665 
    666659.. class:: id.forms.IDPhoneNumberField
    667660
    668661    A form field that validates input as an Indonesian telephone number.
  • docs/ref/contrib/sitemaps.txt

    diff --git a/docs/ref/contrib/sitemaps.txt b/docs/ref/contrib/sitemaps.txt
    index 2393a4a..ef6c64d 100644
    a b with a caching decorator -- you must name your sitemap view and pass 
    330330Template customization
    331331======================
    332332
    333 .. versionadded:: 1.3
    334 
    335333If you wish to use a different template for each sitemap or sitemap index
    336334available on your site, you may specify it by passing a ``template_name``
    337335parameter to the ``sitemap`` and ``index`` views via the URLconf::
  • docs/ref/contrib/sites.txt

    diff --git a/docs/ref/contrib/sites.txt b/docs/ref/contrib/sites.txt
    index 8fc434b..8bb7b27 100644
    a b the :class:`~django.contrib.sites.models.Site` model's manager has a 
    159159        else:
    160160            # Do something else.
    161161
    162 .. versionchanged:: 1.3
    163 
    164162For code which relies on getting the current domain but cannot be certain
    165163that the sites framework will be installed for any given project, there is a
    166164utility function :func:`~django.contrib.sites.models.get_current_site` that
    the sites framework is installed) or a RequestSite instance (if it is not). 
    169167This allows loose coupling with the sites framework and provides a usable
    170168fallback for cases where it is not installed.
    171169
    172 .. versionadded:: 1.3
    173 
    174170.. function:: get_current_site(request)
    175171
    176172    Checks if contrib.sites is installed and returns either the current
    177     :class:`~django.contrib.sites.models.Site` object or a 
     173    :class:`~django.contrib.sites.models.Site` object or a
    178174    :class:`~django.contrib.sites.models.RequestSite` object based on
    179175    the request.
    180176
    fallback when the database-backed sites framework is not available. 
    437433
    438434        Sets the ``name`` and ``domain`` attributes to the value of
    439435        :meth:`~django.http.HttpRequest.get_host`.
    440        
     436
    441437
    442438A :class:`~django.contrib.sites.models.RequestSite` object has a similar
    443439interface to a normal :class:`~django.contrib.sites.models.Site` object, except
  • docs/ref/contrib/staticfiles.txt

    diff --git a/docs/ref/contrib/staticfiles.txt b/docs/ref/contrib/staticfiles.txt
    index cbe8ad5..3a74797 100644
    a b The staticfiles app 
    55.. module:: django.contrib.staticfiles
    66   :synopsis: An app for handling static files.
    77
    8 .. versionadded:: 1.3
    9 
    108``django.contrib.staticfiles`` collects static files from each of your
    119applications (and any other places you specify) into a single location that
    1210can easily be served in production.
  • docs/ref/django-admin.txt

    diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt
    index 5ff7ecb..b606bd3 100644
    a b records to dump. If you're using a :ref:`custom manager <custom-managers>` as 
    176176the default manager and it filters some of the available records, not all of the
    177177objects will be dumped.
    178178
    179 .. versionadded:: 1.3
    180 
    181179The :djadminopt:`--all` option may be provided to specify that
    182180``dumpdata`` should use Django's base manager, dumping records which
    183181might otherwise be filtered or modified by a custom manager.
    pretty-print the output with a number of indentation spaces. 
    197195The :djadminopt:`--exclude` option may be provided to prevent specific
    198196applications from being dumped.
    199197
    200 .. versionadded:: 1.3
    201 
    202198The :djadminopt:`--exclude` option may also be provided to prevent specific
    203199models (specified as in the form of ``appname.ModelName``) from being dumped.
    204200
    Use the ``--no-default-ignore`` option to disable the default values of 
    463459
    464460.. django-admin-option:: --no-wrap
    465461
    466 .. versionadded:: 1.3
    467 
    468462Use the ``--no-wrap`` option to disable breaking long message lines into
    469463several lines in language files.
    470464
    machines on your network. To make your development server viewable to other 
    640634machines on the network, use its own IP address (e.g. ``192.168.2.1``) or
    641635``0.0.0.0`` or ``::`` (with IPv6 enabled).
    642636
    643 .. versionchanged:: 1.3
    644 
    645637You can provide an IPv6 address surrounded by brackets
    646638(e.g. ``[200a::1]:8000``). This will automatically enable IPv6 support.
    647639
    648640A hostname containing ASCII-only characters can also be used.
    649641
    650 .. versionchanged:: 1.3
    651 
    652642If the :doc:`staticfiles</ref/contrib/staticfiles>` contrib app is enabled
    653643(default in new projects) the :djadmin:`runserver` command will be overriden
    654644with an own :djadmin:`runserver<staticfiles-runserver>` command.
    development server. 
    674664
    675665.. django-admin-option:: --ipv6, -6
    676666
    677 .. versionadded:: 1.3
    678 
    679667Use the ``--ipv6`` (or shorter ``-6``) option to tell Django to use IPv6 for
    680668the development server. This changes the default IP address from
    681669``127.0.0.1`` to ``::1``.
    To run on 1.2.3.4:7000 with a ``test`` fixture:: 
    11131101
    11141102    django-admin.py testserver --addrport 1.2.3.4:7000 test
    11151103
    1116 .. versionadded:: 1.3
    1117 
    11181104The :djadminopt:`--noinput` option may be provided to suppress all user
    11191105prompts.
    11201106
  • docs/ref/files/storage.txt

    diff --git a/docs/ref/files/storage.txt b/docs/ref/files/storage.txt
    index b3f8909..f9bcf9b 100644
    a b Django provides two convenient ways to access the current storage class: 
    1818.. function:: get_storage_class([import_path=None])
    1919
    2020    Returns a class or module which implements the storage API.
    21    
     21
    2222    When called without the ``import_path`` parameter ``get_storage_class``
    2323    will return the current default storage system as defined by
    2424    :setting:`DEFAULT_FILE_STORAGE`. If ``import_path`` is provided,
    The FileSystemStorage Class 
    3535    basic file storage on a local filesystem. It inherits from
    3636    :class:`~django.core.files.storage.Storage` and provides implementations
    3737    for all the public methods thereof.
    38    
     38
    3939    .. note::
    40    
     40
    4141        The :class:`FileSystemStorage.delete` method will not raise
    4242        raise an exception if the given file name does not exist.
    4343
    The Storage Class 
    5353
    5454    .. method:: accessed_time(name)
    5555
    56         .. versionadded:: 1.3
    57 
    5856        Returns a ``datetime`` object containing the last accessed time of the
    5957        file. For storage systems that aren't able to return the last accessed
    6058        time this will raise ``NotImplementedError`` instead.
    6159
    6260    .. method:: created_time(name)
    6361
    64         .. versionadded:: 1.3
    65 
    6662        Returns a ``datetime`` object containing the creation time of the file.
    6763        For storage systems that aren't able to return the creation time this
    6864        will raise ``NotImplementedError`` instead.
    The Storage Class 
    10096
    10197    .. method:: modified_time(name)
    10298
    103         .. versionadded:: 1.3
    104 
    10599        Returns a ``datetime`` object containing the last modified time. For
    106100        storage systems that aren't able to return the last modified time, this
    107101        will raise ``NotImplementedError`` instead.
  • docs/ref/forms/api.txt

    diff --git a/docs/ref/forms/api.txt b/docs/ref/forms/api.txt
    index 777d73e..2323425 100644
    a b those classes as an argument:: 
    658658
    659659.. method:: BoundField.value()
    660660
    661    .. versionadded:: 1.3
    662 
    663661Use this method to render the raw value of this field as it would be rendered
    664662by a ``Widget``::
    665663
  • docs/ref/forms/fields.txt

    diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt
    index 2a8f449..98c8a81 100644
    a b For each field, we describe the default widget used if you don't specify 
    704704``TypedMultipleChoiceField``
    705705~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    706706
    707 .. versionadded:: 1.3
    708 
    709707.. class:: TypedMultipleChoiceField(**kwargs)
    710708
    711709    Just like a :class:`MultipleChoiceField`, except :class:`TypedMultipleChoiceField`
  • docs/ref/forms/widgets.txt

    diff --git a/docs/ref/forms/widgets.txt b/docs/ref/forms/widgets.txt
    index eab314a..34be52b 100644
    a b commonly used groups of widgets: 
    192192        Determines whether the widget will have a value filled in when the
    193193        form is re-displayed after a validation error (default is ``False``).
    194194
    195         .. versionchanged:: 1.3
    196             The default value for
    197             :attr:`~PasswordInput.render_value` was
    198             changed from ``True`` to ``False``
    199 
    200195``HiddenInput``
    201196~~~~~~~~~~~~~~~
    202197
    commonly used groups of widgets: 
    232227
    233228.. class:: ClearableFileInput
    234229
    235     .. versionadded:: 1.3
    236 
    237230    File upload input: ``<input type='file' ...>``, with an additional checkbox
    238231    input to clear the field's value, if the field is not required and has
    239232    initial data.
  • docs/ref/models/fields.txt

    diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt
    index 8b3c31f..384e226 100644
    a b define the details of how the relation works. 
    10231023    The field on the related object that the relation is to. By default, Django
    10241024    uses the primary key of the related object.
    10251025
    1026 .. versionadded:: 1.3
    1027 
    10281026.. attribute:: ForeignKey.on_delete
    10291027
    10301028    When an object referenced by a :class:`ForeignKey` is deleted, Django by
  • docs/ref/models/querysets.txt

    diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt
    index 80b3158..39c9f01 100644
    a b followed (optionally) by any output-affecting methods (such as ``values()``), 
    505505but it doesn't really matter. This is your chance to really flaunt your
    506506individualism.
    507507
    508 .. versionchanged:: 1.3
    509 
    510 The ``values()`` method previously did not return anything for
    511 :class:`~django.db.models.ManyToManyField` attributes and would raise an error
    512 if you tried to pass this type of field to it.
    513 
    514 This restriction has been lifted, and you can now also refer to fields on
    515 related models with reverse relations through ``OneToOneField``, ``ForeignKey``
    516 and ``ManyToManyField`` attributes::
     508You can also refer to fields on related models with reverse relations through
     509``OneToOneField``, ``ForeignKey`` and ``ManyToManyField`` attributes::
    517510
    518511    Blog.objects.values('name', 'entry__headline')
    519512    [{'name': 'My blog', 'entry__headline': 'An entry'},
    For example:: 
    16641657    # This will delete all Blogs and all of their Entry objects.
    16651658    blogs.delete()
    16661659
    1667 .. versionadded:: 1.3
    1668     This cascade behavior is customizable via the
    1669     :attr:`~django.db.models.ForeignKey.on_delete` argument to the
    1670     :class:`~django.db.models.ForeignKey`.
     1660This cascade behavior is customizable via the
     1661:attr:`~django.db.models.ForeignKey.on_delete` argument to the
     1662:class:`~django.db.models.ForeignKey`.
    16711663
    16721664The ``delete()`` method does a bulk delete and does not call any ``delete()``
    16731665methods on your models. It does, however, emit the
  • docs/ref/request-response.txt

    diff --git a/docs/ref/request-response.txt b/docs/ref/request-response.txt
    index 21e99de..cc2a351 100644
    a b All attributes should be considered read-only, unless stated otherwise below. 
    4242    data in different ways than conventional HTML forms: binary images,
    4343    XML payload etc. For processing conventional form data, use ``HttpRequest.POST``.
    4444
    45     .. versionadded:: 1.3
    46 
    4745    You can also read from an HttpRequest using a file-like interface. See
    4846    :meth:`HttpRequest.read()`.
    4947
    Methods 
    305303.. method:: HttpRequest.xreadlines()
    306304.. method:: HttpRequest.__iter__()
    307305
    308     .. versionadded:: 1.3
    309 
    310306    Methods implementing a file-like interface for reading from an
    311307    HttpRequest instance. This makes it possible to consume an incoming
    312308    request in a streaming fashion. A common use-case would be to process a
    In addition, ``QueryDict`` has the following methods: 
    509505        >>> q.urlencode()
    510506        'a=2&b=3&b=5'
    511507
    512     .. versionchanged:: 1.3
    513        The ``safe`` parameter was added.
    514 
    515508    Optionally, urlencode can be passed characters which
    516509    do not require encoding. For example::
    517510
    Methods 
    648641
    649642.. method:: HttpResponse.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=True)
    650643
    651     .. versionchanged:: 1.3
    652 
    653     The possibility of specifying a ``datetime.datetime`` object in
    654     ``expires``, and the auto-calculation of ``max_age`` in such case
    655     was added. The ``httponly`` argument was also added.
    656 
    657644    .. versionchanged:: 1.4
    658645
    659646    The default value for httponly was changed from ``False`` to ``True``.
  • docs/ref/settings.txt

    diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt
    index f443138..ec48d08 100644
    a b The site-specific user profile model used by this site. See 
    125125CACHES
    126126------
    127127
    128 .. versionadded:: 1.3
    129 
    130128Default::
    131129
    132130    {
    Only supported for the ``mysql`` backend (see the `MySQL manual`_ for details). 
    534532TEST_DEPENDENCIES
    535533~~~~~~~~~~~~~~~~~
    536534
    537 .. versionadded:: 1.3
    538 
    539535Default: ``['default']``, for all databases other than ``default``,
    540536which has no dependencies.
    541537
    the ``locale`` directory (i.e. ``'/path/to/locale'``). 
    12621258LOGGING
    12631259-------
    12641260
    1265 .. versionadded:: 1.3
    1266 
    12671261Default: A logging configuration dictionary.
    12681262
    12691263A data structure containing configuration information. The contents of
    email log handler; all other log messages are given to a NullHandler. 
    12781272LOGGING_CONFIG
    12791273--------------
    12801274
    1281 .. versionadded:: 1.3
    1282 
    12831275Default: ``'django.utils.log.dictConfig'``
    12841276
    12851277A path to a callable that will be used to configure logging in the
    MEDIA_URL 
    13741366Default: ``''`` (Empty string)
    13751367
    13761368URL that handles the media served from :setting:`MEDIA_ROOT`, used
    1377 for :doc:`managing stored files </topics/files>`.
     1369for :doc:`managing stored files </topics/files>`. It must end in a slash if set
     1370to a non-empty value.
    13781371
    13791372Example: ``"http://media.example.com/"``
    13801373
    1381 .. versionchanged:: 1.3
    1382    It must end in a slash if set to a non-empty value.
    1383 
    13841374MESSAGE_LEVEL
    13851375-------------
    13861376
    A tuple of callables that are used to populate the context in ``RequestContext`` 
    18991889These callables take a request object as their argument and return a dictionary
    19001890of items to be merged into the context.
    19011891
    1902 .. versionadded:: 1.3
    1903     The ``django.core.context_processors.static`` context processor
    1904     was added in this release.
    1905 
    19061892.. versionadded:: 1.4
    19071893    The ``django.core.context_processors.tz`` context processor
    19081894    was added in this release.
    See also :setting:`TIME_ZONE`, :setting:`USE_I18N` and :setting:`USE_L10N`. 
    21632149USE_X_FORWARDED_HOST
    21642150--------------------
    21652151
    2166 .. versionadded:: 1.3.1
    2167 
    21682152Default: ``False``
    21692153
    21702154A boolean that specifies whether to use the X-Forwarded-Host header in
  • docs/ref/signals.txt

    diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt
    index b2f2e85..f96ef30 100644
    a b Arguments sent with this signal: 
    118118    records in the database as the database might not be in a
    119119    consistent state yet.
    120120
    121 .. versionadded:: 1.3
    122 
    123121``using``
    124122    The database alias being used.
    125123
    Arguments sent with this signal: 
    155153    records in the database as the database might not be in a
    156154    consistent state yet.
    157155
    158 .. versionadded:: 1.3
    159 
    160156``using``
    161157    The database alias being used.
    162158
    Arguments sent with this signal: 
    183179``instance``
    184180    The actual instance being deleted.
    185181
    186 .. versionadded:: 1.3
    187 
    188182``using``
    189183    The database alias being used.
    190184
    Arguments sent with this signal: 
    209203    Note that the object will no longer be in the database, so be very
    210204    careful what you do with this instance.
    211205
    212 .. versionadded:: 1.3
    213 
    214206``using``
    215207    The database alias being used.
    216208
    Arguments sent with this signal: 
    271263
    272264    For the ``pre_clear`` and ``post_clear`` actions, this is ``None``.
    273265
    274 .. versionadded:: 1.3
    275 
    276266``using``
    277267    The database alias being used.
    278268
  • docs/ref/template-response.txt

    diff --git a/docs/ref/template-response.txt b/docs/ref/template-response.txt
    index 9e09077..d9b7130 100644
    a b  
    22TemplateResponse and SimpleTemplateResponse
    33===========================================
    44
    5 .. versionadded:: 1.3
    6 
    75.. module:: django.template.response
    86   :synopsis: Classes dealing with lazy-rendered HTTP responses.
    97
  • docs/ref/templates/api.txt

    diff --git a/docs/ref/templates/api.txt b/docs/ref/templates/api.txt
    index 48bd346..f29d2ac 100644
    a b it. Example:: 
    160160    >>> t.render(Context({"person": PersonClass2}))
    161161    "My name is Samantha."
    162162
    163 .. versionchanged:: 1.3
    164     Previously, only variables that originated with an attribute lookup would
    165     be called by the template system. This change was made for consistency
    166     across lookup types.
    167 
    168163Callable variables are slightly more complex than variables which only require
    169164straight lookups. Here are some things to keep in mind:
    170165
    If :setting:`TEMPLATE_CONTEXT_PROCESSORS` contains this processor, every 
    448443  ``django.contrib.auth.context_processors.PermWrapper``, representing the
    449444  permissions that the currently logged-in user has.
    450445
    451 .. versionchanged:: 1.3
    452     Prior to version 1.3, ``PermWrapper`` was located in
    453     ``django.contrib.auth.context_processors``.
    454 
    455 
    456446django.core.context_processors.debug
    457447~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    458448
    django.core.context_processors.static 
    491481
    492482.. function:: django.core.context_processors.static
    493483
    494 .. versionadded:: 1.3
    495 
    496484If :setting:`TEMPLATE_CONTEXT_PROCESSORS` contains this processor, every
    497485``RequestContext`` will contain a variable ``STATIC_URL``, providing the
    498486value of the :setting:`STATIC_URL` setting.
  • docs/ref/templates/builtins.txt

    diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt
    index 072eebf..514953d 100644
    a b In this syntax, each value gets interpreted as a literal string, and there's no 
    156156way to specify variable values. Or literal commas. Or spaces. Did we mention
    157157you shouldn't use this syntax in any new projects?
    158158
    159 .. versionadded:: 1.3
    160 
    161159By default, when you use the ``as`` keyword with the cycle tag, the
    162160usage of ``{% cycle %}`` that declares the cycle will itself output
    163161the first value in the cycle. This could be a problem if you want to
    including it. This example produces the output ``"Hello, John"``: 
    676674
    677675    {{ greeting }}, {{ person|default:"friend" }}!
    678676
    679 .. versionchanged:: 1.3
    680    Additional context and exclusive context.
    681 
    682677You can pass additional context to the template using keyword arguments::
    683678
    684679    {% include "name_snippet.html" with person="Jane" greeting="Hello" %}
    registered in ``somelibrary`` and ``otherlibrary`` located in package 
    710705
    711706    {% load somelibrary package.otherlibrary %}
    712707
    713 .. versionchanged:: 1.3
    714 
    715708You can also selectively load individual filters or tags from a library, using
    716709the ``from`` argument. In this example, the template tags/filters named ``foo``
    717710and ``bar`` will be loaded from ``somelibrary``::
    which is rounded up to 88). 
    10761069with
    10771070^^^^
    10781071
    1079 .. versionchanged:: 1.3
    1080    New keyword argument format and multiple variable assignments.
    1081 
    10821072Caches a complex variable under a simpler name. This is useful when accessing
    10831073an "expensive" method (e.g., one that hits the database) multiple times.
    10841074
    For example:: 
    21262116If ``value`` is ``"http://www.example.org/foo?a=b&c=d"``, the output will be
    21272117``"http%3A//www.example.org/foo%3Fa%3Db%26c%3Dd"``.
    21282118
    2129 .. versionadded:: 1.3
    2130 
    21312119An optional argument containing the characters which should not be escaped can
    21322120be provided.
    21332121
  • docs/topics/auth.txt

    diff --git a/docs/topics/auth.txt b/docs/topics/auth.txt
    index c45e4bb..c4c4bc9 100644
    a b How to log a user out 
    830830Login and logout signals
    831831------------------------
    832832
    833 .. versionadded:: 1.3
    834 
    835833The auth framework uses two :doc:`signals </topics/signals>` that can be used
    836834for notification when a user logs in or out.
    837835
    The login_required decorator 
    930928    context variable which stores the redirect path will use the value of
    931929    ``redirect_field_name`` as its key rather than ``"next"`` (the default).
    932930
    933     .. versionadded:: 1.3
    934 
    935931    :func:`~django.contrib.auth.decorators.login_required` also takes an
    936932    optional ``login_url`` parameter. Example::
    937933
    includes a few other useful built-in views located in 
    11591155    that can be used to reset the password, and sending that link to the
    11601156    user's registered email address.
    11611157
    1162     .. versionchanged:: 1.3
    1163         The ``from_email`` argument was added.
    1164 
    11651158    .. versionchanged:: 1.4
    11661159        Users flagged with an unusable password (see
    11671160        :meth:`~django.contrib.auth.models.User.set_unusable_password()`
    The currently logged-in user's permissions are stored in the template variable 
    16421635:class:`django.contrib.auth.context_processors.PermWrapper`, which is a
    16431636template-friendly proxy of permissions.
    16441637
    1645 .. versionchanged:: 1.3
    1646     Prior to version 1.3, ``PermWrapper`` was located in
    1647     ``django.core.context_processors``.
    1648 
    16491638In the ``{{ perms }}`` object, single-attribute lookup is a proxy to
    16501639:meth:`User.has_module_perms <django.contrib.auth.models.User.has_module_perms>`.
    16511640This example would display ``True`` if the logged-in user had any permissions
    for example, to control anonymous access. 
    19211910Authorization for inactive users
    19221911~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    19231912
    1924 .. versionchanged:: 1.3
    1925 
    19261913An inactive user is a one that is authenticated but has its attribute
    19271914``is_active`` set to ``False``. However this does not mean they are not
    19281915authorized to do anything. For example they are allowed to activate their
  • docs/topics/cache.txt

    diff --git a/docs/topics/cache.txt b/docs/topics/cache.txt
    index f13238e..77d2de7 100644
    a b Your cache preference goes in the :setting:`CACHES` setting in your 
    5151settings file. Here's an explanation of all available values for
    5252:setting:`CACHES`.
    5353
    54 .. versionchanged:: 1.3
    55     The settings used to configure caching changed in Django 1.3. In
    56     Django 1.2 and earlier, you used a single string-based
    57     :setting:`CACHE_BACKEND` setting to configure caches. This has
    58     been replaced with the new dictionary-based :setting:`CACHES`
    59     setting.
    60 
    6154.. _memcached:
    6255
    6356Memcached
    two most common are `python-memcached`_ and `pylibmc`_. 
    8376.. _`python-memcached`: ftp://ftp.tummy.com/pub/python-memcached/
    8477.. _`pylibmc`: http://sendapatch.se/projects/pylibmc/
    8578
    86 .. versionchanged:: 1.3
    87     Support for ``pylibmc`` was added.
    88 
    8979To use Memcached with Django:
    9080
    9181* Set :setting:`BACKEND <CACHES-BACKEND>` to
    nonexistent cache key.:: 
    785775Cache key prefixing
    786776-------------------
    787777
    788 .. versionadded:: 1.3
    789 
    790778If you are sharing a cache instance between servers, or between your
    791779production and development environments, it's possible for data cached
    792780by one server to be used by another server. If the format of cached
    collisions in cache values. 
    807795Cache versioning
    808796----------------
    809797
    810 .. versionadded:: 1.3
    811 
    812798When you change running code that uses cached values, you may need to
    813799purge any existing cached values. The easiest way to do this is to
    814800flush the entire cache, but this can lead to the loss of cache values
    keys unaffected. Continuing our previous example:: 
    856842Cache key transformation
    857843------------------------
    858844
    859 .. versionadded:: 1.3
    860 
    861845As described in the previous two sections, the cache key provided by a
    862846user is not used verbatim -- it is combined with the cache prefix and
    863847key version to provide a final cache key. By default, the three parts
    be used instead of the default key combining function. 
    878862Cache key warnings
    879863------------------
    880864
    881 .. versionadded:: 1.3
    882 
    883865Memcached, the most commonly-used production cache backend, does not allow
    884866cache keys longer than 250 characters or containing whitespace or control
    885867characters, and using such keys will cause an exception. To encourage
    mechanism should take into account when building its cache key. For example, if 
    966948the contents of a Web page depend on a user's language preference, the page is
    967949said to "vary on language."
    968950
    969 .. versionchanged:: 1.3
    970     In Django 1.3 the full request path -- including the query -- is used
    971     to create the cache keys, instead of only the path component in Django 1.2.
    972 
    973951By default, Django's cache system creates its cache keys using the requested
    974952path and query -- e.g., ``"/stories/2005/?order_by=author"``. This means every
    975953request to that URL will use the same cached version, regardless of user-agent
  • docs/topics/class-based-views/index.txt

    diff --git a/docs/topics/class-based-views/index.txt b/docs/topics/class-based-views/index.txt
    index 2d3e00a..a738221 100644
    a b  
    22Class-based views
    33=================
    44
    5 .. versionadded:: 1.3
    6 
    75A view is a callable which takes a request and returns a
    86response. This can be more than just a function, and Django provides
    97an example of some classes which can be used as views. These allow you
  • docs/topics/class-based-views/mixins.txt

    diff --git a/docs/topics/class-based-views/mixins.txt b/docs/topics/class-based-views/mixins.txt
    index f07769f..f349c23 100644
    a b  
    22Using mixins with class-based views
    33===================================
    44
    5 .. versionadded:: 1.3
    6 
    75.. caution::
    86
    97    This is an advanced topic. A working knowledge of :doc:`Django's
  • docs/topics/db/queries.txt

    diff --git a/docs/topics/db/queries.txt b/docs/topics/db/queries.txt
    index 5385b2a..dd16065 100644
    a b issue the query:: 
    633633
    634634    >>> Entry.objects.filter(authors__name=F('blog__name'))
    635635
    636 .. versionadded:: 1.3
    637 
    638636For date and date/time fields, you can add or subtract a
    639637:class:`~datetime.timedelta` object. The following would return all entries
    640638that were modified more than 3 days after they were published::
    it. For example:: 
    876874    # This will delete the Blog and all of its Entry objects.
    877875    b.delete()
    878876
    879 .. versionadded:: 1.3
    880877    This cascade behavior is customizable via the
    881878    :attr:`~django.db.models.ForeignKey.on_delete` argument to the
    882879    :class:`~django.db.models.ForeignKey`.
  • docs/topics/db/sql.txt

    diff --git a/docs/topics/db/sql.txt b/docs/topics/db/sql.txt
    index 19daffd..310dcb5 100644
    a b By default, the Python DB API will return results without their field 
    242242names, which means you end up with a ``list`` of values, rather than a
    243243``dict``. At a small performance cost, you can return results as a
    244244``dict`` by using something like this::
    245    
     245
    246246    def dictfetchall(cursor):
    247247        "Returns all rows from a cursor as a dict"
    248248        desc = cursor.description
    Here is an example of the difference between the two:: 
    256256    >>> cursor.execute("SELECT id, parent_id from test LIMIT 2");
    257257    >>> cursor.fetchall()
    258258    ((54360982L, None), (54360880L, None))
    259    
     259
    260260    >>> cursor.execute("SELECT id, parent_id from test LIMIT 2");
    261261    >>> dictfetchall(cursor)
    262262    [{'parent_id': None, 'id': 54360982L}, {'parent_id': None, 'id': 54360880L}]
    transaction containing those calls is closed correctly. See :ref:`the 
    273273notes on the requirements of Django's transaction handling
    274274<topics-db-transactions-requirements>` for more details.
    275275
    276 .. versionchanged:: 1.3
    277 
    278 Prior to Django 1.3, it was necessary to manually mark a transaction
    279 as dirty using ``transaction.set_dirty()`` when using raw SQL calls.
    280 
    281276Connections and cursors
    282277-----------------------
    283278
  • docs/topics/db/transactions.txt

    diff --git a/docs/topics/db/transactions.txt b/docs/topics/db/transactions.txt
    index 9928354..4a52c5a 100644
    a b database cursor (which is mapped to its own database connection internally). 
    6666Controlling transaction management in views
    6767===========================================
    6868
    69 .. versionchanged:: 1.3
    70    Transaction management context managers are new in Django 1.3.
    71 
    7269For most people, implicit request-based transactions work wonderfully. However,
    7370if you need more fine-grained control over how transactions are managed, you can
    7471use a set of functions in ``django.db.transaction`` to control transactions on a
    managers, too. 
    195192Requirements for transaction handling
    196193=====================================
    197194
    198 .. versionadded:: 1.3
    199 
    200195Django requires that every transaction that is opened is closed before
    201196the completion of a request. If you are using :func:`autocommit` (the
    202197default commit mode) or :func:`commit_on_success`, this will be done
  • docs/topics/email.txt

    diff --git a/docs/topics/email.txt b/docs/topics/email.txt
    index 0cc476e..b3d7254 100644
    a b The "From:" header of the email will be the value of the 
    119119
    120120This method exists for convenience and readability.
    121121
    122 .. versionchanged:: 1.3
    123 
    124122If ``html_message`` is provided, the resulting email will be a
    125123:mimetype:`multipart/alternative` email with ``message`` as the
    126124:mimetype:`text/plain` content type and ``html_message`` as the
    following parameters (in the given order, if positional arguments are used). 
    236234All parameters are optional and can be set at any time prior to calling the
    237235``send()`` method.
    238236
    239 .. versionchanged:: 1.3
    240    The ``cc`` argument was added.
    241 
    242237* ``subject``: The subject line of the email.
    243238
    244239* ``body``: The body text. This should be a plain text message.
  • docs/topics/forms/formsets.txt

    diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt
    index 2a83172..7c1771b 100644
    a b display two blank forms:: 
    3535
    3636    >>> ArticleFormSet = formset_factory(ArticleForm, extra=2)
    3737
    38 .. versionchanged:: 1.3
    39 
    40 Prior to Django 1.3, formset instances were not iterable. To render
    41 the formset you iterated over the ``forms`` attribute::
    42 
    43     >>> formset = ArticleFormSet()
    44     >>> for form in formset.forms:
    45     ...     print(form.as_table())
    46 
    47 Iterating over ``formset.forms`` will render the forms in the order
    48 they were created. The default formset iterator also renders the forms
    49 in this order, but you can change this order by providing an alternate
    50 implementation for the :meth:`__iter__()` method.
     38Iterating over the ``formset`` will render the forms in the order they were
     39created. You can change this order by providing an alternate implementation for
     40the :meth:`__iter__()` method.
    5141
    5242Formsets can also be indexed into, which returns the corresponding form. If you
    5343override ``__iter__``, you will need to also override ``__getitem__`` to have
  • docs/topics/forms/media.txt

    diff --git a/docs/topics/forms/media.txt b/docs/topics/forms/media.txt
    index 615dd71..eba65d2 100644
    a b return values for dynamic media properties. 
    195195Paths in media definitions
    196196--------------------------
    197197
    198 .. versionchanged:: 1.3
    199 
    200198Paths used to specify media can be either relative or absolute. If a path
    201199starts with '/', 'http://' or 'https://', it will be interpreted as an absolute
    202200path, and left as-is. All other paths will be prepended with the value of
  • docs/topics/http/middleware.txt

    diff --git a/docs/topics/http/middleware.txt b/docs/topics/http/middleware.txt
    index fe92bc5..a8347e5 100644
    a b middleware is always called on every response. 
    117117``process_template_response``
    118118-----------------------------
    119119
    120 .. versionadded:: 1.3
    121 
    122120.. method:: process_template_response(self, request, response)
    123121
    124122``request`` is an :class:`~django.http.HttpRequest` object. ``response`` is a
  • docs/topics/http/shortcuts.txt

    diff --git a/docs/topics/http/shortcuts.txt b/docs/topics/http/shortcuts.txt
    index 10be353..0dc38b1 100644
    a b introduce controlled coupling for convenience's sake. 
    1717
    1818.. function:: render(request, template_name[, dictionary][, context_instance][, content_type][, status][, current_app])
    1919
    20    .. versionadded:: 1.3
    21 
    2220   Combines a given template with a given context dictionary and returns an
    2321   :class:`~django.http.HttpResponse` object with that rendered text.
    2422
  • docs/topics/http/urls.txt

    diff --git a/docs/topics/http/urls.txt b/docs/topics/http/urls.txt
    index 4503bbd..e8a220e 100644
    a b A :class:`ResolverMatch` object can also be assigned to a triple:: 
    970970
    971971    func, args, kwargs = resolve('/some/path/')
    972972
    973 .. versionchanged:: 1.3
    974     Triple-assignment exists for backwards-compatibility. Prior to
    975     Django 1.3, :func:`~django.core.urlresolvers.resolve` returned a
    976     triple containing (view function, arguments, keyword arguments);
    977     the :class:`ResolverMatch` object (as well as the namespace and pattern
    978     information it provides) is not available in earlier Django releases.
    979 
    980973One possible use of :func:`~django.core.urlresolvers.resolve` would be to test
    981974whether a view would raise a ``Http404`` error before redirecting to it::
    982975
  • docs/topics/i18n/formatting.txt

    diff --git a/docs/topics/i18n/formatting.txt b/docs/topics/i18n/formatting.txt
    index b091647..fc3f37d 100644
    a b Template tags 
    8080localize
    8181~~~~~~~~
    8282
    83 .. versionadded:: 1.3
    84 
    8583Enables or disables localization of template variables in the
    8684contained block.
    8785
    Template filters 
    116114localize
    117115~~~~~~~~
    118116
    119 .. versionadded:: 1.3
    120 
    121117Forces localization of a single value.
    122118
    123119For example::
    tag. 
    136132unlocalize
    137133~~~~~~~~~~
    138134
    139 .. versionadded:: 1.3
    140 
    141135Forces a single value to be printed without localization.
    142136
    143137For example::
  • docs/topics/i18n/translation.txt

    diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt
    index a7f48fe..aaf728b 100644
    a b translations wouldn't be able to reorder placeholder text. 
    134134Comments for translators
    135135------------------------
    136136
    137 .. versionadded:: 1.3
    138 
    139137If you would like to give translators hints about a translatable string, you
    140138can add a comment prefixed with the ``Translators`` keyword on the line
    141139preceding the string, e.g.::
    cardinality of the elements at play. 
    255253Contextual markers
    256254------------------
    257255
    258 .. versionadded:: 1.3
    259 
    260256Sometimes words have several meanings, such as ``"May"`` in English, which
    261257refers to a month name and to a verb. To enable translators to translate
    262258these words correctly in different contexts, you can use the
    Localized names of languages 
    436432
    437433.. function:: get_language_info
    438434
    439 .. versionadded:: 1.3
    440 
    441435The ``get_language_info()`` function provides detailed information about
    442436languages::
    443437
    using the ``context`` keyword: 
    535529``blocktrans`` template tag
    536530---------------------------
    537531
    538 .. versionchanged:: 1.3
    539    New keyword argument format.
    540 
    541532Contrarily to the :ttag:`trans` tag, the ``blocktrans`` tag allows you to mark
    542533complex sentences consisting of literals and variable content for translation
    543534by making use of placeholders::
    string, so they don't need to be aware of translations. 
    664655    translator might translate the string ``"yes,no"`` as ``"ja,nein"``
    665656    (keeping the comma intact).
    666657
    667 .. versionadded:: 1.3
    668 
    669658You can also retrieve information about any of the available languages using
    670659provided template tags and filters. To get information about a single language,
    671660use the ``{% get_language_info %}`` tag::
    directories listed in :setting:`LOCALE_PATHS` have the highest precedence with 
    787776the ones appearing first having higher precedence than the ones appearing
    788777later.
    789778
    790 .. versionchanged:: 1.3
    791     Directories listed in :setting:`LOCALE_PATHS` weren't included in the
    792     lookup algorithm until version 1.3.
    793 
    794779Using the JavaScript translation catalog
    795780----------------------------------------
    796781
  • docs/topics/logging.txt

    diff --git a/docs/topics/logging.txt b/docs/topics/logging.txt
    index b54a947..ae49af5 100644
    a b  
    22Logging
    33=======
    44
    5 .. versionadded:: 1.3
    6 
    75.. module:: django.utils.log
    86   :synopsis: Logging tools for Django applications
    97
  • docs/topics/signals.txt

    diff --git a/docs/topics/signals.txt b/docs/topics/signals.txt
    index db1bcb0..1078d03 100644
    a b Now, our ``my_callback`` function will be called each time a request finishes. 
    132132Note that ``receiver`` can also take a list of signals to connect a function
    133133to.
    134134
    135 .. versionadded:: 1.3
    136 
    137 The ``receiver`` decorator was added in Django 1.3.
    138 
    139135.. versionchanged:: 1.5
    140136
    141137The ability to pass a list of signals was added.
  • docs/topics/testing.txt

    diff --git a/docs/topics/testing.txt b/docs/topics/testing.txt
    index c4c7373..7afdbe8 100644
    a b module defines tests in class-based approach. 
    7373
    7474.. admonition:: unittest2
    7575
    76     .. versionchanged:: 1.3
    77 
    7876    Python 2.7 introduced some major changes to the unittest library,
    7977    adding some extremely useful features. To ensure that every Django
    8078    project can benefit from these new features, Django ships with a
    two databases. 
    436434Controlling creation order for test databases
    437435~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    438436
    439 .. versionadded:: 1.3
    440 
    441437By default, Django will always create the ``default`` database first.
    442438However, no guarantees are made on the creation order of any other
    443439databases in your test setup.
    Specifically, a ``Response`` object has the following attributes: 
    1001997        The HTTP status of the response, as an integer. See
    1002998        :rfc:`2616#section-10` for a full list of HTTP status codes.
    1003999
    1004     .. versionadded:: 1.3
    1005 
    10061000    .. attribute:: templates
    10071001
    10081002        A list of ``Template`` instances used to render the final content, in
    The request factory 
    10891083
    10901084.. class:: RequestFactory
    10911085
    1092 .. versionadded:: 1.3
    1093 
    10941086The :class:`~django.test.client.RequestFactory` shares the same API as
    10951087the test client. However, instead of behaving like a browser, the
    10961088RequestFactory provides a way to generate a request instance that can
    This means, instead of instantiating a ``Client`` in each test:: 
    13271319Customizing the test client
    13281320~~~~~~~~~~~~~~~~~~~~~~~~~~~
    13291321
    1330 .. versionadded:: 1.3
    1331 
    13321322.. attribute:: TestCase.client_class
    13331323
    13341324If you want to use a different ``Client`` class (for example, a subclass
    your test suite. 
    17081698
    17091699.. method:: TestCase.assertQuerysetEqual(qs, values, transform=repr, ordered=True)
    17101700
    1711     .. versionadded:: 1.3
    1712 
    17131701    Asserts that a queryset ``qs`` returns a particular list of values ``values``.
    17141702
    17151703    The comparison of the contents of ``qs`` and ``values`` is performed using
    your test suite. 
    17301718
    17311719.. method:: TestCase.assertNumQueries(num, func, *args, **kwargs)
    17321720
    1733     .. versionadded:: 1.3
    1734 
    17351721    Asserts that when ``func`` is called with ``*args`` and ``**kwargs`` that
    17361722    ``num`` database queries are executed.
    17371723
    Skipping tests 
    18541840
    18551841.. currentmodule:: django.test
    18561842
    1857 .. versionadded:: 1.3
    1858 
    18591843The unittest library provides the :func:`@skipIf <unittest.skipIf>` and
    18601844:func:`@skipUnless <unittest.skipUnless>` decorators to allow you to skip tests
    18611845if you know ahead of time that those tests are going to fail under certain
Back to Top