I just ran into this same problem. And found the solution if you are hosting with Apache as your server. For instance if my settings were:
MEDIA_ROOT = '/var/www/media/geekingreen'
then I would simply need to give that folder the correct permissions recursively to make sure that any sub-folders also have the same permission. The default group for apache is www-data so to give permission to my django app I would run these commands.
<code><span class="pln">cd </span><span class="pun">/</span><span class="kwd">var</span><span class="pun">/</span><span class="pln">www</span><span class="pun">/</span><span class="pln">media chgrp </span><span class="pun">-</span><span class="pln">R www</span><span class="pun">-</span><span class="pln">data geekingreen</span><span class="pun">/</span><span class="pln"> chmod </span><span class="pun">-</span><span class="pln">R g</span><span class="pun">+</span><span class="pln">w geekingreen</span><span class="pun">/</span><span class="pln"> </span></code>
The chgrp -R www-data geekingreen/ command changes the directory geekingreen and any subdirectories to have the group www-data.
The chmod -R g+w geekingreen/ command changes what permissions the group has on all of these folders that now belong to www-data, to now have the write permission. Obviously required for uploads.
Hope this can help anyone that may have had a similar problem.