В этом представлении я проверяю, вошел ли пользователь в систему или нет, перед загрузкой медиа-файла
from django.urls import path, include, re_path
from . import views
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.auth.decorators import login_required
from django.views.static import serve
### require login for showing media
## todo restrict to specific patterns ? e.g. an authenticated user can only access
## files in his own folder
@login_required
def protected_serve(request, path, document_root=None, show_indexes=False):
return serve(request, path, document_root, show_indexes)
urlpatterns = [
path('', views.home, name='home'),
re_path (r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:], protected_serve, {'document_root': settings.MEDIA_ROOT}),
]
я хочу добиться проверки доступа пользователя только к папке с его собственное имя пользователя, например, пользователь "FOO" может обращаться только к файлам в подпапке мультимедиа с тем же именем.