One of the most simple ways to achieve this is to just store a serialized version of your api data on an api-by-api basis.
class ModelForAPI( models.model ):
name = models.CharField( ... )
data = models.CharField( max_len = SOMETHING_BIG )
def get_paypal_config():
return json.loads( ModelForAPI.objects.get( name = 'PayPal' ).data )
def set_paypal_config( mydict )
qs = ModelForAPI.objects.filter( name = 'PayPal' )
qs.update( data = json.dumps( mydict ))
return
In this way, you get a lot of flexibility in the actual API data without having to modify your schema. You can also store various API settings in the same model.
(Of course... it's often recommended that API variables be stored in environment variables a la Heroku, but that's your call.)