Просмотр исходного кода

Fixed #15593 -- Added a note that the output of `reverse` is urlquoted. Thanks to guettli for the report and draft patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16054 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Gabriel Hurley 14 лет назад
Родитель
Сommit
1b1060c916
2 измененных файлов с 16 добавлено и 2 удалено
  1. 2 0
      docs/ref/unicode.txt
  2. 14 2
      docs/topics/http/urls.txt

+ 2 - 0
docs/ref/unicode.txt

@@ -140,6 +140,8 @@ Normally, you'll only need to use ``smart_unicode()``. Call it as early as
 possible on any input data that might be either Unicode or a bytestring, and
 from then on, you can treat the result as always being Unicode.
 
+.. _uri-and-iri-handling:
+
 URI and IRI handling
 ~~~~~~~~~~~~~~~~~~~~
 

+ 14 - 2
docs/topics/http/urls.txt

@@ -772,9 +772,9 @@ reverse()
 
 If you need to use something similar to the :ttag:`url` template tag in
 your code, Django provides the following method (in the
-``django.core.urlresolvers`` module):
+:mod:`django.core.urlresolvers` module):
 
-.. function:: reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None)
+.. function:: reverse(viewname, [urlconf=None, args=None, kwargs=None, current_app=None])
 
 ``viewname`` is either the function name (either a function reference, or the
 string version of the name, if you used that form in ``urlpatterns``) or the
@@ -815,6 +815,18 @@ namespaces into URLs on specific application instances, according to the
     be imported correctly. Do not include lines that reference views you
     haven't written yet, because those views will not be importable.
 
+.. note::
+
+    The string returned by :meth:`~django.core.urlresolvers.reverse` is already
+    :ref:`urlquoted <uri-and-iri-handling>`. For example::
+
+        >>> reverse('cities', args=u'Orléans')
+        '.../Orl%C3%A9ans/'
+
+    Applying further encoding (such as :meth:`~django.utils.http.urlquote` or
+    ``urllib.quote``) to the ouput of :meth:`~django.core.urlresolvers.reverse`
+    may produce undesirable results.
+
 resolve()
 ---------