From d71a5533f9a8787652244dfb16af37fb7d9059fb Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Tue, 7 May 2013 12:25:41 +0100 Subject: allow_empty -> pending deprecation in preference of overridden get_queryset. --- docs/topics/2.3-announcement.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'docs/topics/2.3-announcement.md') 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\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. -- cgit v1.2.3