I don't want to create a migration file whenever I change the storage of the FileField. I am getting the storage class from settings.py and it is configurable.
settings.py
Storage = S3BotoStorage(bucket='example')
models.py
from django.conf import settings
class myModel(models.Model):
file = models.FileField(upload_to='', blank=True, storage=settings.Storage)
Here is my interpretation to your question - You want to use the storage class (which can be changed in future) specified in your settings.py to store the files.
Suppose you specify xyz storage class in your settings.py and run makemigrations. Django will create a migration file with storage attribute as the one you had specified in the settings.py.
Now if you change the storage class in the settings.py and do not run makemigrations and upload your file, your file will get uploaded to the new storage you specified in the settings file even if you do not run makemigrations.
Hope it helps.