mirror of
https://github.com/django/django.git
synced 2024-12-22 09:05:43 +00:00
Fixed #16155 -- Removed Python 2.4 compatibility constructs from code and mentions from docs. Thanks Aymeric Augustin for the report and patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16349 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
da0c7cd777
commit
dff31de20a
5
INSTALL
5
INSTALL
@ -1,6 +1,6 @@
|
|||||||
Thanks for downloading Django.
|
Thanks for downloading Django.
|
||||||
|
|
||||||
To install it, make sure you have Python 2.4 or greater installed. Then run
|
To install it, make sure you have Python 2.5 or greater installed. Then run
|
||||||
this command from the command prompt:
|
this command from the command prompt:
|
||||||
|
|
||||||
python setup.py install
|
python setup.py install
|
||||||
@ -9,8 +9,9 @@ AS AN ALTERNATIVE, you can just copy the entire "django" directory to Python's
|
|||||||
site-packages directory, which is located wherever your Python installation
|
site-packages directory, which is located wherever your Python installation
|
||||||
lives. Some places you might check are:
|
lives. Some places you might check are:
|
||||||
|
|
||||||
|
/usr/lib/python2.7/site-packages (Unix, Python 2.7)
|
||||||
|
/usr/lib/python2.6/site-packages (Unix, Python 2.6)
|
||||||
/usr/lib/python2.5/site-packages (Unix, Python 2.5)
|
/usr/lib/python2.5/site-packages (Unix, Python 2.5)
|
||||||
/usr/lib/python2.4/site-packages (Unix, Python 2.4)
|
|
||||||
C:\\PYTHON\site-packages (Windows)
|
C:\\PYTHON\site-packages (Windows)
|
||||||
|
|
||||||
For more detailed instructions, see docs/intro/install.txt.
|
For more detailed instructions, see docs/intro/install.txt.
|
||||||
|
3
django/core/cache/__init__.py
vendored
3
django/core/cache/__init__.py
vendored
@ -29,8 +29,7 @@ except ImportError:
|
|||||||
# Python 2.6 and greater
|
# Python 2.6 and greater
|
||||||
from urlparse import parse_qsl
|
from urlparse import parse_qsl
|
||||||
except ImportError:
|
except ImportError:
|
||||||
# Python 2.5, 2.4. Works on Python 2.6 but raises
|
# Python 2.5. Works on Python 2.6 but raises PendingDeprecationWarning
|
||||||
# PendingDeprecationWarning
|
|
||||||
from cgi import parse_qsl
|
from cgi import parse_qsl
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
|
@ -176,12 +176,6 @@ WHEN (new.%(col_name)s IS NULL)
|
|||||||
# classes to normalize values from the database (the to_python
|
# classes to normalize values from the database (the to_python
|
||||||
# method is used for validation and isn't what we want here).
|
# method is used for validation and isn't what we want here).
|
||||||
elif isinstance(value, Database.Timestamp):
|
elif isinstance(value, Database.Timestamp):
|
||||||
# In Python 2.3, the cx_Oracle driver returns its own
|
|
||||||
# Timestamp object that we must convert to a datetime class.
|
|
||||||
if not isinstance(value, datetime.datetime):
|
|
||||||
value = datetime.datetime(value.year, value.month,
|
|
||||||
value.day, value.hour, value.minute, value.second,
|
|
||||||
value.fsecond)
|
|
||||||
if field and field.get_internal_type() == 'DateTimeField':
|
if field and field.get_internal_type() == 'DateTimeField':
|
||||||
pass
|
pass
|
||||||
elif field and field.get_internal_type() == 'DateField':
|
elif field and field.get_internal_type() == 'DateField':
|
||||||
|
@ -915,10 +915,5 @@ def model_unpickle(model, attrs, factory):
|
|||||||
return cls.__new__(cls)
|
return cls.__new__(cls)
|
||||||
model_unpickle.__safe_for_unpickle__ = True
|
model_unpickle.__safe_for_unpickle__ = True
|
||||||
|
|
||||||
if sys.version_info < (2, 5):
|
def subclass_exception(name, parents, module):
|
||||||
# Prior to Python 2.5, Exception was an old-style class
|
return type(name, parents, {'__module__': module})
|
||||||
def subclass_exception(name, parents, unused):
|
|
||||||
return types.ClassType(name, parents, {})
|
|
||||||
else:
|
|
||||||
def subclass_exception(name, parents, module):
|
|
||||||
return type(name, parents, {'__module__': module})
|
|
||||||
|
@ -17,13 +17,12 @@ except ImportError:
|
|||||||
# Python 2.6 and greater
|
# Python 2.6 and greater
|
||||||
from urlparse import parse_qsl
|
from urlparse import parse_qsl
|
||||||
except ImportError:
|
except ImportError:
|
||||||
# Python 2.5, 2.4. Works on Python 2.6 but raises
|
# Python 2.5. Works on Python 2.6 but raises PendingDeprecationWarning
|
||||||
# PendingDeprecationWarning
|
|
||||||
from cgi import parse_qsl
|
from cgi import parse_qsl
|
||||||
|
|
||||||
import Cookie
|
import Cookie
|
||||||
# httponly support exists in Python 2.6's Cookie library,
|
# httponly support exists in Python 2.6's Cookie library,
|
||||||
# but not in Python 2.4 or 2.5.
|
# but not in Python 2.5.
|
||||||
_morsel_supports_httponly = Cookie.Morsel._reserved.has_key('httponly')
|
_morsel_supports_httponly = Cookie.Morsel._reserved.has_key('httponly')
|
||||||
# Some versions of Python 2.7 and later won't need this encoding bug fix:
|
# Some versions of Python 2.7 and later won't need this encoding bug fix:
|
||||||
_cookie_encodes_correctly = Cookie.SimpleCookie().value_encode(';') == (';', '"\\073"')
|
_cookie_encodes_correctly = Cookie.SimpleCookie().value_encode(';') == (';', '"\\073"')
|
||||||
|
@ -3,22 +3,13 @@ The md5 and sha modules are deprecated since Python 2.5, replaced by the
|
|||||||
hashlib module containing both hash algorithms. Here, we provide a common
|
hashlib module containing both hash algorithms. Here, we provide a common
|
||||||
interface to the md5 and sha constructors, depending on system version.
|
interface to the md5 and sha constructors, depending on system version.
|
||||||
"""
|
"""
|
||||||
import sys
|
|
||||||
import warnings
|
|
||||||
|
|
||||||
|
import warnings
|
||||||
warnings.warn("django.utils.hashcompat is deprecated; use hashlib instead",
|
warnings.warn("django.utils.hashcompat is deprecated; use hashlib instead",
|
||||||
PendingDeprecationWarning)
|
PendingDeprecationWarning)
|
||||||
|
|
||||||
if sys.version_info >= (2, 5):
|
import hashlib
|
||||||
import hashlib
|
md5_constructor = hashlib.md5
|
||||||
md5_constructor = hashlib.md5
|
md5_hmac = md5_constructor
|
||||||
md5_hmac = md5_constructor
|
sha_constructor = hashlib.sha1
|
||||||
sha_constructor = hashlib.sha1
|
sha_hmac = sha_constructor
|
||||||
sha_hmac = sha_constructor
|
|
||||||
else:
|
|
||||||
import md5
|
|
||||||
md5_constructor = md5.new
|
|
||||||
md5_hmac = md5
|
|
||||||
import sha
|
|
||||||
sha_constructor = sha.new
|
|
||||||
sha_hmac = sha
|
|
||||||
|
@ -198,8 +198,8 @@ if sys.version_info >= (2, 6):
|
|||||||
p1, p2 = urlparse.urlparse(url1), urlparse.urlparse(url2)
|
p1, p2 = urlparse.urlparse(url1), urlparse.urlparse(url2)
|
||||||
return (p1.scheme, p1.hostname, p1.port) == (p2.scheme, p2.hostname, p2.port)
|
return (p1.scheme, p1.hostname, p1.port) == (p2.scheme, p2.hostname, p2.port)
|
||||||
else:
|
else:
|
||||||
# Python 2.4, 2.5 compatibility. This actually works for Python 2.6 and
|
# Python 2.5 compatibility. This actually works for Python 2.6 and above,
|
||||||
# above, but the above definition is much more obviously correct and so is
|
# but the above definition is much more obviously correct and so is
|
||||||
# preferred going forward.
|
# preferred going forward.
|
||||||
def same_origin(url1, url2):
|
def same_origin(url1, url2):
|
||||||
"""
|
"""
|
||||||
|
@ -7,7 +7,7 @@ these implementations if necessary.
|
|||||||
import itertools
|
import itertools
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
# Fallback for Python 2.4, Python 2.5
|
# Fallback for Python 2.5
|
||||||
def product(*args, **kwds):
|
def product(*args, **kwds):
|
||||||
"""
|
"""
|
||||||
Taken from http://docs.python.org/library/itertools.html#itertools.product
|
Taken from http://docs.python.org/library/itertools.html#itertools.product
|
||||||
|
@ -63,8 +63,7 @@ def to_language(locale):
|
|||||||
class DjangoTranslation(gettext_module.GNUTranslations):
|
class DjangoTranslation(gettext_module.GNUTranslations):
|
||||||
"""
|
"""
|
||||||
This class sets up the GNUTranslations context with regard to output
|
This class sets up the GNUTranslations context with regard to output
|
||||||
charset. Django uses a defined DEFAULT_CHARSET as the output charset on
|
charset.
|
||||||
Python 2.4.
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, *args, **kw):
|
def __init__(self, *args, **kw):
|
||||||
gettext_module.GNUTranslations.__init__(self, *args, **kw)
|
gettext_module.GNUTranslations.__init__(self, *args, **kw)
|
||||||
|
@ -16,7 +16,7 @@ How do I get started?
|
|||||||
What are Django's prerequisites?
|
What are Django's prerequisites?
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
Django requires Python_, specifically any version of Python from 2.4
|
Django requires Python_, specifically any version of Python from 2.5
|
||||||
through 2.7. No other Python libraries are required for basic Django
|
through 2.7. No other Python libraries are required for basic Django
|
||||||
usage.
|
usage.
|
||||||
|
|
||||||
@ -40,17 +40,15 @@ PostgreSQL fans, and MySQL_, `SQLite 3`_, and Oracle_ are also supported.
|
|||||||
.. _`SQLite 3`: http://www.sqlite.org/
|
.. _`SQLite 3`: http://www.sqlite.org/
|
||||||
.. _Oracle: http://www.oracle.com/
|
.. _Oracle: http://www.oracle.com/
|
||||||
|
|
||||||
Do I lose anything by using Python 2.4 versus newer Python versions, such as Python 2.5 or 2.6?
|
Do I lose anything by using Python 2.5 versus newer Python versions, such as Python 2.6 or 2.7?
|
||||||
-----------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
Not in the core framework. Currently, Django itself officially supports any
|
Not in the core framework. Currently, Django itself officially supports any
|
||||||
version of Python from 2.4 through 2.7, inclusive. However, newer versions of
|
version of Python from 2.5 through 2.7, inclusive. However, newer versions of
|
||||||
Python are often faster, have more features, and are better supported. If you
|
Python are often faster, have more features, and are better supported. If you
|
||||||
use a newer version of Python you will also have access to some APIs that
|
use a newer version of Python you will also have access to some APIs that
|
||||||
aren't available under older versions of Python. For example Django provides
|
aren't available under older versions of Python. For example, since Python 2.6,
|
||||||
some `context managers`_ for various operations. If you use Python 2.4 you
|
you can use the advanced string formatting described in `PEP 3101`_.
|
||||||
won't be able to use them, however other APIs which provide the same
|
|
||||||
functionality are always made available.
|
|
||||||
|
|
||||||
Third-party applications for use with Django are, of course, free to set their
|
Third-party applications for use with Django are, of course, free to set their
|
||||||
own version requirements.
|
own version requirements.
|
||||||
@ -61,11 +59,11 @@ versions as part of a migration which will end with Django running on Python 3
|
|||||||
|
|
||||||
All else being equal, we recommend that you use the latest 2.x release
|
All else being equal, we recommend that you use the latest 2.x release
|
||||||
(currently Python 2.7). This will let you take advantage of the numerous
|
(currently Python 2.7). This will let you take advantage of the numerous
|
||||||
improvements and optimizations to the Python language since version 2.4, and
|
improvements and optimizations to the Python language since version 2.5, and
|
||||||
will help ease the process of dropping support for older Python versions on
|
will help ease the process of dropping support for older Python versions on
|
||||||
the road to Python 3.
|
the road to Python 3.
|
||||||
|
|
||||||
.. _context managers: http://docs.python.org/reference/datamodel.html#context-managers
|
.. _PEP 3101: http://www.python.org/dev/peps/pep-3101/
|
||||||
|
|
||||||
Can I use Django with Python 2.4?
|
Can I use Django with Python 2.4?
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
@ -135,8 +135,8 @@ Pointing Python at the new Django version
|
|||||||
Once you've retrieved the branch's code, you'll need to change your Python
|
Once you've retrieved the branch's code, you'll need to change your Python
|
||||||
``site-packages`` directory so that it points to the branch version of the
|
``site-packages`` directory so that it points to the branch version of the
|
||||||
``django`` directory. (The ``site-packages`` directory is somewhere such as
|
``django`` directory. (The ``site-packages`` directory is somewhere such as
|
||||||
``/usr/lib/python2.4/site-packages`` or
|
``/usr/lib/python2.7/site-packages`` or
|
||||||
``/usr/local/lib/python2.4/site-packages`` or ``C:\Python\site-packages``.)
|
``/usr/local/lib/python2.7/site-packages`` or ``C:\Python\site-packages``.)
|
||||||
|
|
||||||
The simplest way to do this is by renaming the old ``django`` directory to
|
The simplest way to do this is by renaming the old ``django`` directory to
|
||||||
``django.OLD`` and moving the trunk version of the code into the directory
|
``django.OLD`` and moving the trunk version of the code into the directory
|
||||||
@ -169,12 +169,5 @@ sure all other lines are commented::
|
|||||||
# On windows a path may look like this:
|
# On windows a path may look like this:
|
||||||
# C:/path/to/<branch>
|
# C:/path/to/<branch>
|
||||||
|
|
||||||
If you're using Django 0.95 or earlier and installed it using
|
|
||||||
``python setup.py install``, you'll have a directory called something like
|
|
||||||
``Django-0.95-py2.4.egg`` instead of ``django``. In this case, edit the file
|
|
||||||
``setuptools.pth`` and remove the line that references the Django ``.egg``
|
|
||||||
file. Then copy the branch's version of the ``django`` directory into
|
|
||||||
``site-packages``.
|
|
||||||
|
|
||||||
.. _path file: http://docs.python.org/library/site.html
|
.. _path file: http://docs.python.org/library/site.html
|
||||||
.. _django-developers: http://groups.google.com/group/django-developers
|
.. _django-developers: http://groups.google.com/group/django-developers
|
||||||
|
@ -10,13 +10,11 @@ Install Python
|
|||||||
--------------
|
--------------
|
||||||
|
|
||||||
Being a Python Web framework, Django requires Python. It works with any Python
|
Being a Python Web framework, Django requires Python. It works with any Python
|
||||||
version from 2.4 to 2.7 (due to backwards
|
version from 2.5 to 2.7 (due to backwards incompatibilities in Python 3.0,
|
||||||
incompatibilities in Python 3.0, Django does not currently work with
|
Django does not currently work with Python 3.0; see :doc:`the Django FAQ
|
||||||
Python 3.0; see :doc:`the Django FAQ </faq/install>` for more
|
</faq/install>` for more information on supported Python versions and the 3.0
|
||||||
information on supported Python versions and the 3.0 transition), but we
|
transition), these versions of Python include a lightweight database called
|
||||||
recommend installing Python 2.5 or later. If you do so, you won't need to set
|
SQLite_ so you won't need to set up a database just yet.
|
||||||
up a database just yet: Python 2.5 or later includes a lightweight database
|
|
||||||
called SQLite_.
|
|
||||||
|
|
||||||
.. _sqlite: http://sqlite.org/
|
.. _sqlite: http://sqlite.org/
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ Overview
|
|||||||
========
|
========
|
||||||
In general, GeoDjango installation requires:
|
In general, GeoDjango installation requires:
|
||||||
|
|
||||||
1. :ref:`python24` and :ref:`django`
|
1. Python and :ref:`django`
|
||||||
2. :ref:`spatial_database`
|
2. :ref:`spatial_database`
|
||||||
3. :ref:`geospatial_libs`
|
3. :ref:`geospatial_libs`
|
||||||
|
|
||||||
@ -32,22 +32,10 @@ instructions are available for:
|
|||||||
Requirements
|
Requirements
|
||||||
============
|
============
|
||||||
|
|
||||||
.. _python24:
|
|
||||||
|
|
||||||
Python 2.4+
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Python 2.4 is the minimum version supported by Django, however Python 2.5+ is
|
|
||||||
recommended because the `ctypes`__ module comes included; otherwise, 2.4 users
|
|
||||||
will need to `download and install ctypes`__.
|
|
||||||
|
|
||||||
__ http://docs.python.org/lib/module-ctypes.html
|
|
||||||
__ http://sourceforge.net/projects/ctypes/files/
|
|
||||||
|
|
||||||
.. _django:
|
.. _django:
|
||||||
|
|
||||||
Django
|
Python and Django
|
||||||
------
|
-----------------
|
||||||
|
|
||||||
Because GeoDjango is included with Django, please refer to Django's
|
Because GeoDjango is included with Django, please refer to Django's
|
||||||
:doc:`installation instructions </intro/install>` for details on how to install.
|
:doc:`installation instructions </intro/install>` for details on how to install.
|
||||||
@ -1034,7 +1022,6 @@ Required package information:
|
|||||||
* ``flex``: required to build PostGIS
|
* ``flex``: required to build PostGIS
|
||||||
* ``postgresql-8.1``
|
* ``postgresql-8.1``
|
||||||
* ``postgresql-server-dev-8.1``: for ``pg_config``
|
* ``postgresql-server-dev-8.1``: for ``pg_config``
|
||||||
* ``python-ctypes``: Python 2.4 needs to have ctypes installed separately
|
|
||||||
* ``python-psycopg2``
|
* ``python-psycopg2``
|
||||||
* ``python-setuptools``: for ``easy_install``
|
* ``python-setuptools``: for ``easy_install``
|
||||||
|
|
||||||
@ -1110,7 +1097,7 @@ Python
|
|||||||
^^^^^^
|
^^^^^^
|
||||||
|
|
||||||
First, download the latest `Python 2.7 installer`__ from the Python Web site.
|
First, download the latest `Python 2.7 installer`__ from the Python Web site.
|
||||||
Next, run the installer and keep the defaults -- for example, keep
|
Next, run the installer and keep the defaults -- for example, keep
|
||||||
'Install for all users' checked and the installation path set as
|
'Install for all users' checked and the installation path set as
|
||||||
``C:\Python27``.
|
``C:\Python27``.
|
||||||
|
|
||||||
@ -1165,7 +1152,7 @@ tree and select :menuselection:`PostGIS 1.5 for PostgreSQL 9.0`.
|
|||||||
|
|
||||||
After clicking next, you will be prompted to select your mirror, PostGIS
|
After clicking next, you will be prompted to select your mirror, PostGIS
|
||||||
will be downloaded, and the PostGIS installer will begin. Select only the
|
will be downloaded, and the PostGIS installer will begin. Select only the
|
||||||
default options during install (e.g., do not uncheck the option to create a
|
default options during install (e.g., do not uncheck the option to create a
|
||||||
default PostGIS database).
|
default PostGIS database).
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
@ -1216,7 +1203,7 @@ executable with ``cmd.exe``, will set this up::
|
|||||||
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%"
|
reg ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROJ_LIB /t REG_EXPAND_SZ /f /d "%PROJ_LIB%"
|
||||||
|
|
||||||
For your convenience, these commands are available in the execuatble batch
|
For your convenience, these commands are available in the execuatble batch
|
||||||
script, :download:`geodjango_setup.bat`.
|
script, :download:`geodjango_setup.bat`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
@ -17,6 +17,26 @@ we've `begun the deprecation process for some features`_.
|
|||||||
.. _backwards incompatible changes: backwards-incompatible-changes-1.4_
|
.. _backwards incompatible changes: backwards-incompatible-changes-1.4_
|
||||||
.. _begun the deprecation process for some features: deprecated-features-1.4_
|
.. _begun the deprecation process for some features: deprecated-features-1.4_
|
||||||
|
|
||||||
|
Python compatibility
|
||||||
|
====================
|
||||||
|
|
||||||
|
While not a new feature, it's important to note that Django 1.4 introduces the
|
||||||
|
second shift in our Python compatibility policy since Django's initial public
|
||||||
|
debut. Django 1.2 dropped support for Python 2.3; now Django 1.4 drops support
|
||||||
|
for Python 2.4. As such, the minimum Python version required for Django is now
|
||||||
|
2.5, and Django is tested and supported on Python 2.5, 2.6 and 2.7.
|
||||||
|
|
||||||
|
This change should affect only a small number of Django users, as most
|
||||||
|
operating-system vendors today are shipping Python 2.5 or newer as their default
|
||||||
|
version. If you're still using Python 2.4, however, you'll need to stick to
|
||||||
|
Django 1.3 until you can upgrade; per :doc:`our support policy
|
||||||
|
</internals/release-process>`, Django 1.3 will continue to receive security
|
||||||
|
support until the release of Django 1.5.
|
||||||
|
|
||||||
|
Django does not support Python 3.x at this time. A document outlining our full
|
||||||
|
timeline for deprecating Python 2.x and moving to Python 3.x will be published
|
||||||
|
before the release of Django 1.4.
|
||||||
|
|
||||||
What's new in Django 1.4
|
What's new in Django 1.4
|
||||||
========================
|
========================
|
||||||
|
|
||||||
|
@ -79,9 +79,6 @@ These functions, described in detail below, can be used in two different ways:
|
|||||||
# this code executes inside a transaction
|
# this code executes inside a transaction
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
This technique works with all supported version of Python (that is, with
|
|
||||||
Python 2.4 and greater).
|
|
||||||
|
|
||||||
* As a `context manager`_ around a particular block of code::
|
* As a `context manager`_ around a particular block of code::
|
||||||
|
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
@ -96,8 +93,9 @@ These functions, described in detail below, can be used in two different ways:
|
|||||||
# this code executes inside a transaction
|
# this code executes inside a transaction
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
The ``with`` statement is new in Python 2.5, and so this syntax can only
|
Both techniques work with all supported version of Python. However, in Python
|
||||||
be used with Python 2.5 and above.
|
2.5, you must add ``from __future__ import with_statement`` at the beginning
|
||||||
|
of your module if you are using the ``with`` statement.
|
||||||
|
|
||||||
.. _decorator: http://docs.python.org/glossary.html#term-decorator
|
.. _decorator: http://docs.python.org/glossary.html#term-decorator
|
||||||
.. _context manager: http://docs.python.org/glossary.html#term-context-manager
|
.. _context manager: http://docs.python.org/glossary.html#term-context-manager
|
||||||
|
@ -9,7 +9,7 @@ Install Python
|
|||||||
|
|
||||||
Being a Python Web framework, Django requires Python.
|
Being a Python Web framework, Django requires Python.
|
||||||
|
|
||||||
It works with any Python version from 2.4 to 2.7 (due to backwards
|
It works with any Python version from 2.5 to 2.7 (due to backwards
|
||||||
incompatibilities in Python 3.0, Django does not currently work with
|
incompatibilities in Python 3.0, Django does not currently work with
|
||||||
Python 3.0; see :doc:`the Django FAQ </faq/install>` for more
|
Python 3.0; see :doc:`the Django FAQ </faq/install>` for more
|
||||||
information on supported Python versions and the 3.0 transition).
|
information on supported Python versions and the 3.0 transition).
|
||||||
@ -102,11 +102,6 @@ database bindings are installed.
|
|||||||
will also want to read the database-specific :ref:`notes for the MySQL
|
will also want to read the database-specific :ref:`notes for the MySQL
|
||||||
backend <mysql-notes>`.
|
backend <mysql-notes>`.
|
||||||
|
|
||||||
* If you're using SQLite and Python 2.4, you'll need pysqlite_. Use version
|
|
||||||
2.0.3 or higher. Python 2.5 ships with an SQLite wrapper in the standard
|
|
||||||
library, so you don't need to install anything extra in that case. Please
|
|
||||||
read the :ref:`SQLite backend notes <sqlite-notes>`.
|
|
||||||
|
|
||||||
* If you're using Oracle, you'll need a copy of cx_Oracle_, but please
|
* If you're using Oracle, you'll need a copy of cx_Oracle_, but please
|
||||||
read the database-specific :ref:`notes for the Oracle backend <oracle-notes>`
|
read the database-specific :ref:`notes for the Oracle backend <oracle-notes>`
|
||||||
for important information regarding supported versions of both Oracle and
|
for important information regarding supported versions of both Oracle and
|
||||||
|
@ -441,10 +441,6 @@ Messages to this logger have the following extra context:
|
|||||||
* ``request``: The request object that generated the logging
|
* ``request``: The request object that generated the logging
|
||||||
message.
|
message.
|
||||||
|
|
||||||
.. note::
|
|
||||||
Due to a limitation in the logging library, this extra
|
|
||||||
context is not available if you are using Python 2.4.
|
|
||||||
|
|
||||||
``django.db.backends``
|
``django.db.backends``
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
@ -462,10 +458,6 @@ For performance reasons, SQL logging is only enabled when
|
|||||||
``settings.DEBUG`` is set to ``True``, regardless of the logging
|
``settings.DEBUG`` is set to ``True``, regardless of the logging
|
||||||
level or handlers that are installed.
|
level or handlers that are installed.
|
||||||
|
|
||||||
.. note::
|
|
||||||
Due to a limitation in the logging library, this extra
|
|
||||||
context is not available if you are using Python 2.4.
|
|
||||||
|
|
||||||
Handlers
|
Handlers
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ module defines tests in class-based approach.
|
|||||||
adding some extremely useful features. To ensure that every Django
|
adding some extremely useful features. To ensure that every Django
|
||||||
project can benefit from these new features, Django ships with a
|
project can benefit from these new features, Django ships with a
|
||||||
copy of unittest2_, a copy of the Python 2.7 unittest library,
|
copy of unittest2_, a copy of the Python 2.7 unittest library,
|
||||||
backported for Python 2.4 compatibility.
|
backported for Python 2.5 compatibility.
|
||||||
|
|
||||||
To access this library, Django provides the
|
To access this library, Django provides the
|
||||||
``django.utils.unittest`` module alias. If you are using Python
|
``django.utils.unittest`` module alias. If you are using Python
|
||||||
|
@ -1126,20 +1126,14 @@ class CommandTypes(AdminScriptTestCase):
|
|||||||
"--help is handled as a special case"
|
"--help is handled as a special case"
|
||||||
args = ['--help']
|
args = ['--help']
|
||||||
out, err = self.run_manage(args)
|
out, err = self.run_manage(args)
|
||||||
if sys.version_info < (2, 5):
|
self.assertOutput(out, "Usage: manage.py subcommand [options] [args]")
|
||||||
self.assertOutput(out, "usage: manage.py subcommand [options] [args]")
|
|
||||||
else:
|
|
||||||
self.assertOutput(out, "Usage: manage.py subcommand [options] [args]")
|
|
||||||
self.assertOutput(out, "Type 'manage.py help <subcommand>' for help on a specific subcommand.")
|
self.assertOutput(out, "Type 'manage.py help <subcommand>' for help on a specific subcommand.")
|
||||||
|
|
||||||
def test_short_help(self):
|
def test_short_help(self):
|
||||||
"-h is handled as a short form of --help"
|
"-h is handled as a short form of --help"
|
||||||
args = ['-h']
|
args = ['-h']
|
||||||
out, err = self.run_manage(args)
|
out, err = self.run_manage(args)
|
||||||
if sys.version_info < (2, 5):
|
self.assertOutput(out, "Usage: manage.py subcommand [options] [args]")
|
||||||
self.assertOutput(out, "usage: manage.py subcommand [options] [args]")
|
|
||||||
else:
|
|
||||||
self.assertOutput(out, "Usage: manage.py subcommand [options] [args]")
|
|
||||||
self.assertOutput(out, "Type 'manage.py help <subcommand>' for help on a specific subcommand.")
|
self.assertOutput(out, "Type 'manage.py help <subcommand>' for help on a specific subcommand.")
|
||||||
|
|
||||||
def test_specific_help(self):
|
def test_specific_help(self):
|
||||||
|
@ -248,9 +248,6 @@ class CookieTests(unittest.TestCase):
|
|||||||
"""
|
"""
|
||||||
Test that we don't output tricky characters in encoded value
|
Test that we don't output tricky characters in encoded value
|
||||||
"""
|
"""
|
||||||
# Python 2.4 compatibility note: Python 2.4's cookie implementation
|
|
||||||
# always returns Set-Cookie headers terminating in semi-colons.
|
|
||||||
# That's not the bug this test is looking for, so ignore it.
|
|
||||||
c = SimpleCookie()
|
c = SimpleCookie()
|
||||||
c['test'] = "An,awkward;value"
|
c['test'] = "An,awkward;value"
|
||||||
self.assertTrue(";" not in c.output().rstrip(';')) # IE compat
|
self.assertTrue(";" not in c.output().rstrip(';')) # IE compat
|
||||||
|
Loading…
Reference in New Issue
Block a user