Я понял, что решил проблему более сложным образом, чем это было необходимо. Использование двух отдельных представлений упрощает проблему. У меня сложилось впечатление, что интерфейс администратора будет включать такую базовую функцию.
Я создал представление download_list для отображения файлов в каталоге и представление download_file, которое использует django-sendfile для передачи файла конечному пользователю. Download_file просто анализирует каталог с помощью listdir (), проверяет, является ли расширение допустимым, и отправляет полный путь к файлу в функцию download_file (после того, как пользователь выбирает один).