mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-09 23:04:47 +03:00
Add friendly error message when django-filter isn't installed
This commit is contained in:
parent
96523b6883
commit
f4409fd258
|
@ -49,9 +49,20 @@ if django_filters:
|
||||||
PendingDeprecationWarning
|
PendingDeprecationWarning
|
||||||
)
|
)
|
||||||
return super(FilterSetMetaclass, cls).__new__(cls, name, bases, attrs)
|
return super(FilterSetMetaclass, cls).__new__(cls, name, bases, attrs)
|
||||||
|
_BaseFilterSet = DFFilterSet
|
||||||
|
else:
|
||||||
|
# Dummy metaclass just so we can give a user-friendly error message.
|
||||||
|
class FilterSetMetaclass(type):
|
||||||
|
def __init__(self, name, bases, attrs):
|
||||||
|
# Assert only on subclasses, so we can define FilterSet below.
|
||||||
|
if bases != (object,):
|
||||||
|
assert False, 'django-filter must be installed to use the `FilterSet` class'
|
||||||
|
super(FilterSetMetaclass, self).__init__(name, bases, attrs)
|
||||||
|
_BaseFilterSet = object
|
||||||
|
|
||||||
class FilterSet(six.with_metaclass(FilterSetMetaclass, DFFilterSet)):
|
|
||||||
pass
|
class FilterSet(six.with_metaclass(FilterSetMetaclass, _BaseFilterSet)):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class DjangoFilterBackend(BaseFilterBackend):
|
class DjangoFilterBackend(BaseFilterBackend):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user