Archivos en MEDIA Django 1.11+ privados (requerir autenticación)

A menudo querremos ofrecer archivos privados en nuestra aplicación Django. La solución más sencilla a esta función es hacer una redirección vía regex a una función que lleve el decorador require_login, de la librería de Django.

Dicha redirección deberá ser incluida en el archivo urls.py principal de nuestro proyecto. Un ejemplo de implementación de esta funcionalidad es el siguiente:

[code language=»python»]
urlpatterns = [
url(r’^admin/’, admin.site.urls),
]

@login_required
def protected_serve(request, path, document_root=None, show_indexes=False):
print("Serving " + path)
return serve(request, path, document_root, show_indexes)

urlpatterns += [
url( r’^%s(?P<path>.*)$’% settings.MEDIA_URL[1:], protected_serve, {‘document_root’: settings.MEDIA_ROOT}),
]
[/code]

Modificando la ruta podrás distinguir qué archivos quedan privados y cuáles no. Si tengo tiempo escribiré un par de ejemplos. Gracias por leerme 😉

Fuente: http://blog.majsky.cz/django-protected-media-files/

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.