diff options
| author | Yamila Moreno | 2013-10-24 15:39:02 +0200 | 
|---|---|---|
| committer | Yamila Moreno | 2013-10-24 16:16:01 +0200 | 
| commit | 82e9ddcf7a5cb5fda81e84326bb6f8181ccdffab (patch) | |
| tree | d634427fd7c69d1bf333cd05022e8cd9f24b237b /docs/api-guide/generic-views.md | |
| parent | 4d894fd39ec5670e72756c26908468fd743354c6 (diff) | |
| download | django-rest-framework-82e9ddcf7a5cb5fda81e84326bb6f8181ccdffab.tar.bz2 | |
Added get_filter_backends method
Diffstat (limited to 'docs/api-guide/generic-views.md')
| -rwxr-xr-x | docs/api-guide/generic-views.md | 20 | 
1 files changed, 18 insertions, 2 deletions
| diff --git a/docs/api-guide/generic-views.md b/docs/api-guide/generic-views.md index 24fc0bc7..8fedcdaa 100755 --- a/docs/api-guide/generic-views.md +++ b/docs/api-guide/generic-views.md @@ -121,6 +121,22 @@ For example:  Note that if your API doesn't include any object level permissions, you may optionally exclude the ``self.check_object_permissions, and simply return the object from the `get_object_or_404` lookup. +#### `get_filter_backends(self)` + +Returns the classes that should be used to filter the queryset. Defaults to returning the `filter_backends` attribute. + +May be override to provide more complex behavior with filters, as using different (or even exlusive) lists of filter_backends depending on different criteria. + +For example: + +    def get_filter_backends(self): +        if "geo_route" in self.request.QUERY_PARAMS: +            return (GeoRouteFilter, CategoryFilter) +        elif "geo_point" in self.request.QUERY_PARAMS: +            return (GeoPointFilter, CategoryFilter) + +        return (CategoryFilter,) +  #### `get_serializer_class(self)`  Returns the class that should be used for the serializer.  Defaults to returning the `serializer_class` attribute, or dynamically generating a serializer class if the `model` shortcut is being used. @@ -328,7 +344,7 @@ You can then simply apply this mixin to a view or viewset anytime you need to ap          serializer_class = UserSerializer          lookup_fields = ('account', 'username') -Using custom mixins is a good option if you have custom behavior that needs to be used  +Using custom mixins is a good option if you have custom behavior that needs to be used  ## Creating custom base classes @@ -337,7 +353,7 @@ If you are using a mixin across multiple views, you can take this a step further      class BaseRetrieveView(MultipleFieldLookupMixin,                             generics.RetrieveAPIView):          pass -     +      class BaseRetrieveUpdateDestroyView(MultipleFieldLookupMixin,                                          generics.RetrieveUpdateDestroyAPIView):          pass | 
