mirror of
https://github.com/ansible/awx.git
synced 2026-05-08 09:57:35 -02:30
Only show editable fields in the browsable API raw data form on a detail view.
This commit is contained in:
@@ -139,6 +139,16 @@ class GenericAPIView(generics.GenericAPIView, APIView):
|
|||||||
# model = ModelClass
|
# model = ModelClass
|
||||||
# serializer_class = SerializerClass
|
# serializer_class = SerializerClass
|
||||||
|
|
||||||
|
def get_serializer(self, *args, **kwargs):
|
||||||
|
serializer = super(GenericAPIView, self).get_serializer(*args, **kwargs)
|
||||||
|
# Override when called from browsable API to generate raw data form;
|
||||||
|
# always remove read only fields from sample raw data.
|
||||||
|
if hasattr(self, '_raw_data_form_marker'):
|
||||||
|
for name, field in serializer.fields.items():
|
||||||
|
if getattr(field, 'read_only', None):
|
||||||
|
del serializer.fields[name]
|
||||||
|
return serializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
#if hasattr(self.request.user, 'get_queryset'):
|
#if hasattr(self.request.user, 'get_queryset'):
|
||||||
# return self.request.user.get_queryset(self.model)
|
# return self.request.user.get_queryset(self.model)
|
||||||
|
|||||||
@@ -16,6 +16,13 @@ class BrowsableAPIRenderer(renderers.BrowsableAPIRenderer):
|
|||||||
return renderers.JSONRenderer()
|
return renderers.JSONRenderer()
|
||||||
return renderer
|
return renderer
|
||||||
|
|
||||||
|
def get_raw_data_form(self, view, method, request):
|
||||||
|
try:
|
||||||
|
setattr(view, '_raw_data_form_marker', True)
|
||||||
|
return super(BrowsableAPIRenderer, self).get_raw_data_form(view, method, request)
|
||||||
|
finally:
|
||||||
|
delattr(view, '_raw_data_form_marker')
|
||||||
|
|
||||||
def get_rendered_html_form(self, view, method, request):
|
def get_rendered_html_form(self, view, method, request):
|
||||||
'''Never show auto-generated form (only raw form).'''
|
'''Never show auto-generated form (only raw form).'''
|
||||||
obj = getattr(view, 'object', None)
|
obj = getattr(view, 'object', None)
|
||||||
|
|||||||
Reference in New Issue
Block a user