我正在尝试下载已上传到django媒体目录的文件。 我能够成功上传文件,但是我不知道下载这些文件的最佳方法。我在网上看到了不同的示例,但是我不完全理解它们。这是我的密码
models.py:
urlpatterns = [
.........
path('profile/', user_views.profile, name='profile'),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urls.py
<a href="{{ user.profile.certification.url }}">Download Certification</a>
file.html:
ValueError
The 'certification' attribute has no file associated with it.
我收到此错误:
CARD Number: 5204 2477 5000 1505
Expiration Date: 11/2022
CVC: 111
我是否可以在views.py中创建一个视图并在urls.py中创建一个URL以处理下载?如果是这样,我该怎么做。
答案 0 :(得分:0)
错误消息很清楚:
“证书”属性没有与之关联的文件。
,表示此profile
实例的certification
字段为空(尚未上传任何文件)。而且,如果没有文件路径,您将无法构建url,对吗?
您在这里有两种解决方案:要么将certification
字段设为必填项(删除blank=True
参数),但是如果您已经具有没有认证的配置文件,那么这将无法解决问题-在尝试获取网址之前先测试profile.certification
:
{% if user.profile.certification %}
<a href="{{ user.profile.certification.url }}">Download Certification</a>
{% else %}
<p>This user hasn't uploaded their certification</p>
{% endif %}