Проверка разрешения на загрузку медиафайла в Django

В моем проекте Django я хочу сделать медиафайлы запрещенными для просмотра, если не передана секретная фраза.

# setting.py
...
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

# myapp/urls.py
from django.conf import settings
from django.conf.urls.static import static
...
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

# myapp/models.py
...
class File(models.Model):
    file = models.FileField(upload_to='files')

Я хочу сделать URL /media/files/afile.txt запрещенным напрямую (со статусом 403) и читаемым URL /media/files/afile.txt?secret=mysecretphrase. Мне не удается решить эту проблему в моем view.py, как обычно. Может быть, есть элегантный способ решить эту проблему с помощью промежуточного программного обеспечения или чего-либо еще...

Вернуться на верх