瀏覽代碼

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
Malcolm Tredinnick 14 年之前
父節點
當前提交
030c97b119
共有 3 個文件被更改,包括 39 次插入3 次删除
  1. 2 0
      docs/howto/deployment/modpython.txt
  2. 18 3
      docs/ref/request-response.txt
  3. 19 0
      docs/topics/http/urls.txt

+ 2 - 0
docs/howto/deployment/modpython.txt

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

+ 18 - 3
docs/ref/request-response.txt

@@ -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
 

+ 19 - 0
docs/topics/http/urls.txt

@@ -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>`).