Можно у сериализатора переопределить методы create и update и там уже что угодно делать с данными.
Например:
class VendorManagementUpdateSerializer(serializers.ModelSerializer):
...
parent = VendorToFrontSerializer()
...
class Meta:
model = Vendors
fields = (..., 'parent', ...)
def create(self, validated_data, **kwargs):
parent = validated_data.pop('parent')
instance = super().create(validated_data, **kwargs)
parent_serializer = VendorToFrontSerializer(data=parent)
if parent_serializer.is_valid():
instance.parent = parent_serializer.save()
return instance
def update(self, instance, validated_data, **kwargs):
# ...точно так же, только нужно будет уже имеющийся объект обновить
Можно, конечно, и оптимальней написать)