if you have already added this in your `settings.py` file
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
and still your are getting 404 error then it might be because you have to added media_url in `urls.py` aswell
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
this is how you can add it. If you want to read more in details then read [this article][1]
[1]: https://www.thetopsites.net/article/50645793.shtml
The better way for MEDIA_ROOT is,
try to make media path dynamic will be easy when you shift your project.
Settings.py
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
MEDIA_URL = '/media/'
urls.py
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Look at this
https://docs.djangoproject.com/en/dev/howto/static-files/