Documented how to manually piece together URLs with get_script_name().

Thanks to timo and leovitch for the patch. Fixed #10328.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@13772 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2010-09-12 19:44:19 +00:00
parent 7bb6abed12
commit 030c97b119
3 changed files with 39 additions and 3 deletions

View File

@ -1,3 +1,5 @@
.. _howto-deployment-modpython:
============================================
How to use Django with Apache and mod_python
============================================

View File

@ -30,10 +30,25 @@ All attributes except ``session`` should be considered read-only.
.. attribute:: HttpRequest.path
A string representing the full path to the requested page, not including
the domain.
A string representing the full path to the requested page, not including
the domain.
Example: ``"/music/bands/the_beatles/"``
Example: ``"/music/bands/the_beatles/"``
.. attribute:: HttpRequest.path_info
Under some web server configurations, the portion of the URL after the host
name is split up into a script prefix portion and a path info portion
(this happens, for example, when using the ``django.root`` option
with the :ref:`modpython handler from Apache <howto-deployment-modpython>`).
The ``path_info`` attribute always contains the path info portion of the
path, no matter what web server is being used. Using this instead of
attr:`~HttpRequest.path` can make your code much easier to move between test
and deployment servers.
For example, if the ``django.root`` for your application is set to
``"/minfo"``, then ``path`` might be ``"/minfo/music/bands/the_beatles/"``
and ``path_info`` would be ``"/music/bands/the_beatles/"``.
.. attribute:: HttpRequest.method

View File

@ -926,3 +926,22 @@ permalink()
The :func:`django.db.models.permalink` decorator is useful for writing short
methods that return a full URL path. For example, a model's
``get_absolute_url()`` method. See :func:`django.db.models.permalink` for more.
get_script_prefix()
-------------------
.. function:: get_script_prefix()
.. versionadded:: 1.0
Normally, you should always use :func:`~django.core.urlresolvers.reverse` or
:func:`~django.db.models.permalink` to define URLs within your application.
However, if your application constructs part of the URL hierarchy itself, you
may occasionally need to generate URLs. In that case, you need to be able to
find the base URL of the Django project within its web server
(normally, :func:`~django.core.urlresolvers.reverse` takes care of this for
you). In that case, you can call ``get_script_prefix()``, which will return the
script prefix portion of the URL for your Django project. If your Django
project is at the root of its webserver, this is always ``"/"``, but it can be
changed, for instance by using ``django.root`` (see :ref:`How to use
Django with Apache and mod_python <howto-deployment-modpython>`).