diff options
| author | Tom Christie | 2012-10-09 12:01:17 +0100 | 
|---|---|---|
| committer | Tom Christie | 2012-10-09 12:01:17 +0100 | 
| commit | 115e61be0900b3d5dd93ff84f20629311aceff9f (patch) | |
| tree | f8a521e65ee4a3671acd3c512cddc1f613c97d82 /rest_framework/urlpatterns.py | |
| parent | dc52ceaaa273f3d3b5248c2ebf655a747fa516db (diff) | |
| download | django-rest-framework-115e61be0900b3d5dd93ff84f20629311aceff9f.tar.bz2 | |
Added quickstart guide
Diffstat (limited to 'rest_framework/urlpatterns.py')
| -rw-r--r-- | rest_framework/urlpatterns.py | 25 | 
1 files changed, 23 insertions, 2 deletions
| diff --git a/rest_framework/urlpatterns.py b/rest_framework/urlpatterns.py index a040b621..386c78a2 100644 --- a/rest_framework/urlpatterns.py +++ b/rest_framework/urlpatterns.py @@ -2,13 +2,34 @@ from django.conf.urls.defaults import url  from rest_framework.settings import api_settings -def format_suffix_patterns(urlpatterns, suffix_required=False, suffix_kwarg=None): +def format_suffix_patterns(urlpatterns, suffix_required=False, +                           suffix_kwarg=None, allowed=None):      """      Supplement existing urlpatterns with corrosponding patterns that also      include a '.format' suffix.  Retains urlpattern ordering. + +    suffix_required: +        If `True`, only suffixed URLs will be generated, and non-suffixed +        URLs will not be used.  Defaults to `False`. + +    suffix_kwarg: +        The name of the kwarg that will be passed to the view. +        Defaults to 'format'. + +    allowed: +        An optional tuple/list of allowed suffixes.  eg ['json', 'api'] +        Defaults to `None`, which allows any suffix. +      """      suffix_kwarg = suffix_kwarg or api_settings.FORMAT_SUFFIX_KWARG -    suffix_pattern = r'\.(?P<%s>[a-z]+)$' % suffix_kwarg +    if allowed: +        if len(allowed) == 1: +            allowed_pattern = allowed[0] +        else: +            allowed_pattern = '(%s)' % '|'.join(allowed) +        suffix_pattern = r'\.(?P<%s>%s)$' % (suffix_kwarg, allowed_pattern) +    else: +        suffix_pattern = r'\.(?P<%s>[a-z]+)$' % suffix_kwarg      ret = []      for urlpattern in urlpatterns: | 
