I've a Car class

```
class Car(serializers.ModelSerializer):
    engine = EngineSerializer(many=False, required=False)
    owner = UserSerializer(many=False, required=False)

```

and now I want to hide engine for users except the owner (this should be checked at `self.context['user'] == self.owner`.

I can accomplish this by making engine into a SerializerMethodField()

```
class Car(serializers.ModelSerializer):
    engine = serializers.SerializerMethodField()
    owner = UserSerializer(many=False, required=False)
    def get_engine(self, obj):
        if self.context['user'] == self.owner:
            return EngineSerializer(self.engine, many=False).data
        else:
            return None or so

```

but this would create problems when creating + updating. What is the best practice for this? I don't aim privacy but just want to avoid cost of serializing the engine (imagine it takes a long time to serialize and it's useless for people except the owner)