【发布时间】:2019-12-27 16:58:11
【问题描述】:
我正在用 Django 和 Postgres 创建一个网站,用户可以在其中回答多个问题并上传一些 PDF。
我可以上传 PDF 但不能显示它。我希望用户能够点击一个链接,然后打开一个包含 PDF 的新网页。
在我的details.html中我写了代码:
<a href="{{ MEDIA_URL }}{{project.thirdquestiondetail.third_seven.url}}">Click here to see the file</a>
但是,如果用户点击链接,他会收到以下消息:
我有以下几点:
mysite/urls.py
from django.contrib import admin
from django.urls import path, include
from django.views.generic.base import TemplateView
from django.conf import settings
from django.views.static import serve
from django.conf.urls.static import static
urlpatterns = [
path('', TemplateView.as_view(template_name='home.html'), name='home'),
path('conditions/', TemplateView.as_view(template_name='conditions.html'), name='conditions'),
path('admin/', admin.site.urls),
path('users/', include('users.urls')),
path('users/', include('django.contrib.auth.urls')),
path('projects/', include('projects.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
mysite/settings.py
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'mysite/static/')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
如前所述,我很确定 PDF 已上传。事实上,如果我在管理面板中以超级用户身份登录,我可以看到 PDF。
但是如果我点击它,我会得到与上面报告的相同的 404 错误
当我定义 /media/ 时,我认为错误出现在我的 settings.py 中。所以我检查了几个类似的问题,但似乎我的设置与选择的答案一致。
【问题讨论】:
标签: django