python - 使用 django 1.11 的模式更新受保护的服务 url 路径
问题描述
您如何在当前(1.11)版本的 Django 中使用此代码?下面的代码使用了模式模块,但当我用谷歌搜索它时,它在 1.10 中被删除了。
from django.conf.urls import patterns, include, url
from django.contrib.auth.decorators import login_required
from django.views.static import serve
from django.conf import settings
@login_required
def protected_serve(request, path, document_root=None, show_indexes=False):
return serve(request, path, document_root, show_indexes)
urlpatterns = patterns('',
url(r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:], protected_serve, {'document_root': settings.MEDIA_ROOT}),
)
这是源教程链接
解决方案
在 Django 1.8+ 中,urlpatterns 应该是一个列表(发行说明)。也删除patterns
导入。
from django.conf.urls import include, url
urlpatterns = [
url(r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:], protected_serve, {'document_root': settings.MEDIA_ROOT}),
]