From 93189ec27d53d3216d452abdc2711e973a888d0c Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Mon, 3 Sep 2012 16:06:17 +0100 Subject: [PATCH] Added format_suffix_patterns, and fix up settings --- djangorestframework/settings.py | 6 +++--- djangorestframework/urlpatterns.py | 20 ++++++++++++++++++++ docs/tutorial/2-requests-and-responses.md | 1 + 3 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 djangorestframework/urlpatterns.py diff --git a/djangorestframework/settings.py b/djangorestframework/settings.py index 1acaad0c3..e801a9f1c 100644 --- a/djangorestframework/settings.py +++ b/djangorestframework/settings.py @@ -23,10 +23,10 @@ DEFAULTS = { 'DEFAULT_RENDERERS': ( renderers.JSONRenderer, renderers.JSONPRenderer, - renderers.DocumentingHTMLRenderer, - renderers.DocumentingXHTMLRenderer, + # renderers.DocumentingHTMLRenderer, + # renderers.DocumentingXHTMLRenderer, renderers.DocumentingPlainTextRenderer, - renderers.XMLRenderer + # renderers.XMLRenderer ) } diff --git a/djangorestframework/urlpatterns.py b/djangorestframework/urlpatterns.py new file mode 100644 index 000000000..d34acf9b2 --- /dev/null +++ b/djangorestframework/urlpatterns.py @@ -0,0 +1,20 @@ +from django.conf.urls.defaults import url + + +def format_suffix_patterns(urlpatterns, suffix_required=False): + """ + Supplement existing urlpatterns with corrosponding patterns that also + include a '.format' suffix. Retains urlpattern ordering. + """ + ret = [] + for urlpattern in urlpatterns: + # Form our complementing '.format' urlpattern + regex = urlpattern.regex.pattern.rstrip('$') + '.(?P[a-z]+)$' + view = urlpattern._callback or urlpattern._callback_str + kwargs = urlpattern.default_args + name = urlpattern.name + # Add in both the existing and the new urlpattern + if not suffix_required: + ret.append(urlpattern) + ret.append(url(regex, view, kwargs, name)) + return ret diff --git a/docs/tutorial/2-requests-and-responses.md b/docs/tutorial/2-requests-and-responses.md index 9309f6e0f..4ff303ae7 100644 --- a/docs/tutorial/2-requests-and-responses.md +++ b/docs/tutorial/2-requests-and-responses.md @@ -111,6 +111,7 @@ and Now update the `urls.py` file slightly, to append a set of `format_suffix_patterns` in addition to the existing URLs. + from django.conf.urls import patterns, url from djangorestframework.urlpatterns import format_suffix_patterns urlpatterns = patterns('blogpost.views',