django - 当form.save()不返回对象时,如何在保存模型表单对象后从django FileField中获取多个文件
问题描述
我有一个 django 表单类,它扩展了django-postman 的 WriteForm(它是一个 ModelForm),并带有一个额外的字段来上传一些文件。
from postman.forms import WriteForm
class MyWriteForm(WriteForm):
file_field = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}))
但是,在对文件进行任何操作之前,我需要保存的模型。如果我按照文档中的示例,我可以扩展邮递员FormView
并覆盖该save()
方法:
from postman.views import FormView
class MyFormView(FormView):
form_class = MyWriteForm
def post(self, request, *args, **kwargs):
form_class = self.get_form_class()
form = self.get_form(form_class)
files = request.FILES.getlist('file_field')
if form.is_valid():
for f in files:
# Do something with each file.
result = form.save() # result is a Boolean instead of the object!
return self.form_valid(form)
else:
return self.form_invalid(form)
但是,django-postman WriteForm 的save()
方法并没有按预期返回对象,而是返回一个布尔值。
保存后还有其他方法可以获取 ModelForm 的对象吗?是通过视图还是形式?
解决方案
推荐阅读
- python-3.x - 如何 One Hot 对 pandas 中的混合字符串和数字单元格值进行编码?
- cognos - 有没有办法使用 Cognos SDK 来操作 BIBusTKServer?
- html - 在 HTML 属性中使用车把的默认转义是否安全
- javascript - 如何从 CDN 加载 React.Component 并渲染到另一个 React.Component
- c# - 在你已经实现了许多类之后在 C# 接口中添加一个新属性
- java - 尝试在 Android 中使用使用 Clojure 创建的 JAR
- html - 光滑的旋转木马溢出容器
- assembly - 在 TASM 理想模式下设置数据段的对齐方式
- github - Github 开发分支合并到 master 显示比预期更多的历史
- php - 如何将包含数组的 JSON 表迁移到 SQL?