Browse Source

Update url_for documentation

Previous documentation referenced a non-existent property on the Flask
object called "build_error_handler".

This should actually reference Flask.url_build_error_handlers.
pull/885/head
John Hobbs 11 years ago
parent
commit
e31a2a80ec
  1. 14
      flask/helpers.py

14
flask/helpers.py

@ -199,16 +199,16 @@ def url_for(endpoint, **values):
For more information, head over to the :ref:`Quickstart <url-building>`. For more information, head over to the :ref:`Quickstart <url-building>`.
To integrate applications, :class:`Flask` has a hook to intercept URL build To integrate applications, :class:`Flask` has a hook to intercept URL build
errors through :attr:`Flask.build_error_handler`. The `url_for` function errors through :attr:`Flask.url_build_error_handlers`. The `url_for`
results in a :exc:`~werkzeug.routing.BuildError` when the current app does function results in a :exc:`~werkzeug.routing.BuildError` when the current
not have a URL for the given endpoint and values. When it does, the app does not have a URL for the given endpoint and values. When it does, the
:data:`~flask.current_app` calls its :attr:`~Flask.build_error_handler` if :data:`~flask.current_app` calls its :attr:`~Flask.url_build_error_handlers` if
it is not `None`, which can return a string to use as the result of it is not `None`, which can return a string to use as the result of
`url_for` (instead of `url_for`'s default to raise the `url_for` (instead of `url_for`'s default to raise the
:exc:`~werkzeug.routing.BuildError` exception) or re-raise the exception. :exc:`~werkzeug.routing.BuildError` exception) or re-raise the exception.
An example:: An example::
def external_url_handler(error, endpoint, **values): def external_url_handler(error, endpoint, values):
"Looks up an external URL when `url_for` cannot build a URL." "Looks up an external URL when `url_for` cannot build a URL."
# This is an example of hooking the build_error_handler. # This is an example of hooking the build_error_handler.
# Here, lookup_url is some utility function you've built # Here, lookup_url is some utility function you've built
@ -225,10 +225,10 @@ def url_for(endpoint, **values):
# url_for will use this result, instead of raising BuildError. # url_for will use this result, instead of raising BuildError.
return url return url
app.build_error_handler = external_url_handler app.url_build_error_handlers.append(external_url_handler)
Here, `error` is the instance of :exc:`~werkzeug.routing.BuildError`, and Here, `error` is the instance of :exc:`~werkzeug.routing.BuildError`, and
`endpoint` and `**values` are the arguments passed into `url_for`. Note `endpoint` and `values` are the arguments passed into `url_for`. Note
that this is for building URLs outside the current application, and not for that this is for building URLs outside the current application, and not for
handling 404 NotFound errors. handling 404 NotFound errors.

Loading…
Cancel
Save