gracefully display filters
This commit is contained in:
parent
0e22dcac4c
commit
aafbedb08a
@ -1,6 +1,12 @@
|
|||||||
from rest_framework import serializers
|
|
||||||
|
from logging import getLogger
|
||||||
|
|
||||||
|
from rest_framework import serializers, fields
|
||||||
from rest_framework.metadata import SimpleMetadata
|
from rest_framework.metadata import SimpleMetadata
|
||||||
from rest_framework.request import clone_request
|
from rest_framework.request import clone_request
|
||||||
|
from django.utils.encoding import force_str
|
||||||
|
|
||||||
|
log = getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class ExpandedMetadata(SimpleMetadata):
|
class ExpandedMetadata(SimpleMetadata):
|
||||||
@ -11,6 +17,9 @@ class ExpandedMetadata(SimpleMetadata):
|
|||||||
if hasattr(view, "ordering_fields"):
|
if hasattr(view, "ordering_fields"):
|
||||||
metadata["sort"] = view.ordering_fields
|
metadata["sort"] = view.ordering_fields
|
||||||
|
|
||||||
|
if hasattr(view, "filterset_fields"):
|
||||||
|
metadata["filter"] = view.filterset_fields
|
||||||
|
|
||||||
return metadata
|
return metadata
|
||||||
|
|
||||||
def determine_actions(self, request, view):
|
def determine_actions(self, request, view):
|
||||||
@ -39,3 +48,13 @@ class ExpandedMetadata(SimpleMetadata):
|
|||||||
view.request = request
|
view.request = request
|
||||||
|
|
||||||
return actions
|
return actions
|
||||||
|
|
||||||
|
def get_field_info(self, field):
|
||||||
|
field_info = super().get_field_info(field)
|
||||||
|
if hasattr(field, 'default') and field.default is not fields.empty:
|
||||||
|
field_info['default'] = field.default
|
||||||
|
|
||||||
|
if hasattr(field, 'initial') and field.initial is not fields.empty:
|
||||||
|
field_info['initial'] = field.initial
|
||||||
|
|
||||||
|
return field_info
|
||||||
|
Loading…
x
Reference in New Issue
Block a user