django - 我可以将一个 django 文件字段中的文件作为文件列表上传吗?
问题描述
我创建了一个网页,候选人可以在其中申请工作。在那里,他们可以列出不同的以往经历。我通过在我的模型中连接它们并在获取时拆分它们来处理所有体验细节。在这种情况下我应该如何处理文件?
我的申请人模型有一个名为 company_doc 的文件字段。它还可以以某种方式获取多个文件,以便我可以通过一些索引检索它们吗?那可能吗?
解决方案
在撰写本文时,没有FileField
可以存储多个文件的模型。通常这是用一个额外的模型来建模的,例如模型CompanyDoc
有 aFileField
和 a ,所以:ForeignKey
Applicant
class Applicant(models.Model):
# …
pass
class CompanyDoc(models.Model):
applicant = models.ForeignKey(
Applicant, on_delete=models.CASCADE
)
file = models.FileField(upload_to='company_doc/')
然后,您可以构建一个可以上传多个文件的表单:
from django import forms
class CompanyDocsForm(forms.Form):
files = forms.FileField(
widget=forms.ClearableFileInput(attrs={'multiple': True})
)
然后处理这个:
def some_view(request, applicant_id):
if request.method == 'POST':
form = CompanyDocForm(request.POST, request.FILES)
if form.is_valid():
data = [
CompanyDoc(file=file, applicant_id=applicant_id)
for file in request.FILES.getlist('files')
]
CompanyDoc.objects.bulk_create(data)
else:
# …
pass
else:
# …
pass
# …
有关详细信息,请参阅文档的上传多个文件部分。
推荐阅读
- gcc - 如果链接描述文件中没有定义属性部分,有没有办法让编译器发出警告/错误?
- actions-on-google - 如果通过键盘激活操作,则音频不会在 SSML 中播放
- javascript - 反应 API 获取失败
- python - 用字典中的新值替换键值对中的空白值(pythohn 3.x)
- javascript - 根据 id 返回特定的物种
- reactjs - 在 React Native 中仅显示第一行文本
- c# - 当我留在同一页面并单击搜索按钮时,Gridview RowDataBound 不起作用
- asp.net-mvc - 在没有 ViewData 的情况下从 Controller 向 View 传递数据和/或值的方法
- r - R基于多个唯一变量有条件地将数据帧从长转换为宽
- c# - Debug.Log() 不显示任何内容