mirror of
https://github.com/ansible/awx.git
synced 2026-01-10 15:32:07 -03:30
Only show editable fields in the browsable API raw data form on a detail view.
This commit is contained in:
parent
0b3d056c16
commit
d632aa0af9
@ -139,6 +139,16 @@ class GenericAPIView(generics.GenericAPIView, APIView):
|
||||
# model = ModelClass
|
||||
# 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):
|
||||
#if hasattr(self.request.user, 'get_queryset'):
|
||||
# return self.request.user.get_queryset(self.model)
|
||||
|
||||
@ -16,6 +16,13 @@ class BrowsableAPIRenderer(renderers.BrowsableAPIRenderer):
|
||||
return renderers.JSONRenderer()
|
||||
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):
|
||||
'''Never show auto-generated form (only raw form).'''
|
||||
obj = getattr(view, 'object', None)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user