File/ImageField отлично подходят, только стоит учитывать, что они открывают файл на чтение для валидации при каждом сохранении объекта черед админку. И да, они хранят сылку на сервере (точнее относительный путь в какой-то ФС). Storage backend позволяет вместо локального диска использовать что-то более надежное, распределенное и масштабируемое чем локальный диск на единственном сервере.
Для фото еще куда ни шло, но передавать видео в любом виде, отличном от application/octet-stream - это трата ресурсов, как браузера пользователя, так и сервера. Соответственно, в JSONResponse только ссылки.
Хранить файлы на сервере по-другому не получится, не в MongoDB же их пихать. Не очень понятно, что конкретно смущает в приведенной ссылке на 1.avi
В nix-ах есть особенность реализации ФС: любой каталог, в котором 10к+ файлов, размывает кэш дескрипторов ФС, поэтому при хранении БОЛЬШОГО числа файлов их раскладывают по двух-трех-уровневой иерархии каталогов. См. FileField.upload_to для примера, как это можно интегрировать в Django. А так в целом да, желательно чтобы по полному пути файла можно было определить, к какому объекту он относится, без использования БД (чтобы висячие файлы чистить)
gettext - стандарт де-факто для локализации, имеет кучу биндингов, обвязок и тулзов для удобства перевода. Правильнов Вам говорят, не надо велосипедить - в gettext нет ничего сильно сложного.