I have a serializer as follow:
class MySerializer(serializers.ModelSerializer):
""" Serializer for mymodel """
version = VersionSerializer()
device = DeviceSerializer()
camera = CameraSerializer(many=True)
My code needs to be able to create instance of mymodel knowing only one field on my camera foreign key.
I can create another serializer like this:
class MySerializerSlugRelated(serializers.ModelSerializer):
""" Serializer for vision """
version = VersionSerializer()
device = DeviceSerializer()
camera = serializers.SlugRelatedField(slug_field='my_slug_field', many=True, queryset=Camera.objects.all())
But it seems kind of dirty to recreate an other serializer just to be able to get one field in a different way, is there a clean way to do this ?
Thanks
You can let the MySerializerSlugRelated
inherit from MySerializer
, and only redefine the camera
field:
class MySerializerSlugRelated(MySerializer):
camera = serializers.SlugRelatedField(
slug_field='my_slug_field',
many=True,
queryset=Camera.objects.all()
)