diff options
Diffstat (limited to 'docs')
| -rwxr-xr-x | docs/api-guide/generic-views.md | 3 | ||||
| -rw-r--r-- | docs/topics/2.3-announcement.md | 14 |
2 files changed, 14 insertions, 3 deletions
diff --git a/docs/api-guide/generic-views.md b/docs/api-guide/generic-views.md index d430710d..59912568 100755 --- a/docs/api-guide/generic-views.md +++ b/docs/api-guide/generic-views.md @@ -75,10 +75,9 @@ The following attibutes are used to control pagination when used with list views * `pagination_serializer_class` - The pagination serializer class to use when determining the style of paginated responses. Defaults to the same value as the `DEFAULT_PAGINATION_SERIALIZER_CLASS` setting. * `page_kwarg` - The name of a URL kwarg or URL query parameter which can be used by the client to control which page is requested. Defaults to `'page'`. -**Other**: +**Filtering**: * `filter_backend` - The filter backend class that should be used for filtering the queryset. Defaults to the same value as the `FILTER_BACKEND` setting. -* `allow_empty` - Determines if an empty list should successfully display zero results, or return a 404 response. Defaults to `True`, meaning empty lists will return sucessful `200 OK` responses, with zero results. ### Methods diff --git a/docs/topics/2.3-announcement.md b/docs/topics/2.3-announcement.md index c465b774..62fa5b9c 100644 --- a/docs/topics/2.3-announcement.md +++ b/docs/topics/2.3-announcement.md @@ -152,9 +152,21 @@ And would have the following entry in the urlconf: url(r'^users/(?P<username>\w+)/$', UserDetail.as_view()), - Usage of the old-style attributes continues to be supported, but will raise a `PendingDeprecationWarning`. +The `allow_empty` attribute is also deprecated. To use `allow_empty=False` style behavior you should explicitly override `get_queryset` and raise an `Http404` on empty querysets. + +For example: + + class DisallowEmptyQuerysetMixin(object): + def get_queryset(self): + queryset = super(DisallowEmptyQuerysetMixin, self).get_queryset() + if not queryset.exists(): + raise Http404 + return queryset + +In our opinion removing lesser-used attributes like `allow_empty` helps us move towards simpler generic view implementations, making them more obvious to use and override, and re-inforcing the preferred style of developers writing their own base classes and mixins for custom behavior rather than relying on the configurability of the generic views. + ## Simpler URL lookups The `HyperlinkedRelatedField` class now takes a single optional `lookup_field` argument, that replaces the `pk_url_kwarg`, `slug_url_kwarg`, and `slug_field` arguments. |
