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.request import clone_request
|
||||
from django.utils.encoding import force_str
|
||||
|
||||
log = getLogger(__name__)
|
||||
|
||||
|
||||
class ExpandedMetadata(SimpleMetadata):
|
||||
@ -11,6 +17,9 @@ class ExpandedMetadata(SimpleMetadata):
|
||||
if hasattr(view, "ordering_fields"):
|
||||
metadata["sort"] = view.ordering_fields
|
||||
|
||||
if hasattr(view, "filterset_fields"):
|
||||
metadata["filter"] = view.filterset_fields
|
||||
|
||||
return metadata
|
||||
|
||||
def determine_actions(self, request, view):
|
||||
@ -39,3 +48,13 @@ class ExpandedMetadata(SimpleMetadata):
|
||||
view.request = request
|
||||
|
||||
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