def get_fields(self):
fields = super(RasterModelSerializer, self).get_fields()
if not self.Meta.raster_field:
for name, field in fields.items():
if isinstance(field, serializers.FileField):
self.Meta.raster_field = name
break
fieldname = self.Meta.raster_field
request = self.context.get('request')
renderer = getattr(request, 'accepted_renderer', None)
try:
obj = self.instance[0]
except (IndexError, TypeError):
obj = self.instance
modelfield = getattr(obj, fieldname, None)
if (isinstance(renderer, BaseGDALRenderer)
or not isinstance(modelfield, FieldFile)):
fields[fieldname] = serializers.ReadOnlyField()
return fields
def test_should_file_convert_string():
assert_conversion(serializers.FileField, graphene.String)