我有一个模型,它有一个文件字段,如下所示:
class Document(models.Model):
file = models.FileField(...)
字符串
在我的应用程序的其他地方,我试图从外部url下载一个pdf文件,并将其上传到文件字段:
import requests
from django.core.files.base import ContentFile
...
# get the external file:
response = requests.get('<external-url>')
# convert to ContentFile:
file = ContentFile(response.content, name='document.pdf')
# update document:
document.file.save('document.pdf', content=file, save=True)
型
但是,我注意到以下行为:
- 通过django-admin门户上传的文件具有
content_type
“application/json” - 通过上述脚本上传的文件具有
content_type
“application/octet-stream”
如何确保通过脚本上传的文件具有“application/pdf”content_type
?是否可以在ContentFile
对象上设置content_type
?这对前端很重要。
其他注意事项:
- 我使用AWS S3作为文件存储系统。
- 通过scirpt从我的本地文件存储上传文件(即使用
with open(...) as file:
仍然上传文件为“applicaton/octet-stream”
1条答案
按热度按时间72qzrwbm1#
解决方案,get this,是简单地添加一个
content_type
属性到ContentFile
示例:字符串