I'm investigating using staticfiles ManifestStaticFilesStorage. Unless I'm missing something, there seems to be a hole with Django forms Media class. If you use an inner Media class you do not get the hashed versions of the assets filenames.
This leads me to believe you can't use the Forms Media technique with ManifestStaticFilesStorage.
I noticed there was an undocumented function called static in staticfiles.templatetags.staticfiles. I tried calling this function inside my inner Media classes to make it return the hashed version of the files, and this does work as long as collectstatic has been run. But if you have an empty STATIC_DIR, you can't even call the management command to run collectstatic as it tries to resolve these Media classes at import time. So it seems to be a chicken and egg problem. A possible work around was found on stackoverflow to delay the evaluation of the Media classes:
http://stackoverflow.com/questions/28366281/django-cachedstaticfilesstorage-in-modeladmin-media
So it seems I have a couple of options:
1) Give up on form Media classes and explicitly use {% static %} in my templates instead of {% form.media %}
2) Defer the resolution of {% form.media %} using the stackoverflow trick
Since I'm not doing any dynamic decision making in my views about what forms to use (yet), I always know what static files I need in my templates to support my forms, so I'm leaning toward option 1. But just wanted to bounce this off the community in case I am missing something.
Thanks.