diff --git a/docs/model-api.txt b/docs/model-api.txt index 961269aebdd55..e7afbfd13a215 100644 --- a/docs/model-api.txt +++ b/docs/model-api.txt @@ -1759,6 +1759,15 @@ But this template code is good:: {{ object.name }} +.. note:: + The string you return from ``get_absolute_url()`` must be use only ASCII + characters (required by the URI spec, `RFC 2396`_) that has been + URL-encoded, if necessary. Code and templates using ``get_absolute_url()`` + should be able to use the result directly without needing to do any + further processing. + +.. _RFC 2396: http://www.ietf.org/rfc/rfc2396.txt + The ``permalink`` decorator ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/syndication_feeds.txt b/docs/syndication_feeds.txt index d9d4f53b88e91..2a03e6d5a60e5 100644 --- a/docs/syndication_feeds.txt +++ b/docs/syndication_feeds.txt @@ -146,7 +146,10 @@ put into those elements. exist, it tries calling a method ``item_link()`` in the ``Feed`` class, passing it a single parameter, ``item``, which is the object itself. Both ``get_absolute_url()`` and ``item_link()`` should return the item's - URL as a normal Python string. + URL as a normal Python string. As with ``get_absolute_url()``, the + result of ``item_link()`` will be included directly in the URL, so you + are responsible for doing all necessary URL quoting and conversion to + ASCII inside the method itself. * For the LatestEntries example above, we could have very simple feed templates: