Django:form.is_valid 检查后,cleaned_data 缺少图像字段

标签 django validation forms django-models

我有一个表格,有一堆字段,然后我有一个:

    profile_image=forms.ImageField(required=False)

问题是在 form.is_valid() 检查之后,
form.cleaned_data.get('first_name')

例如,确实返回实际名称,但是,
form.cleaned_data.get('profile_image')

不返回任何东西。

在 print(request.POST) 输出中,我得到
u'profile_image': [u'02 Portfolio Page.jpg']

但在 print(form.cleaned_data) 我得到:
 'profile_image': None

为什么文件在 is_valid 检查时丢失?我该怎么办?

更新:
class NewChickForm(forms.Form):
first_name = forms.CharField()
last_name = forms.CharField()
profile_image=forms.ImageField(required=False)
def do_save(self):
    u = Subject(
        first_name = self.cleaned_data.get('first_name'),
        last_name = self.cleaned_data.get('last_name'),
        profile_image = self.cleaned_data.get('profile_image'),
    )
    print(self.cleaned_data)
    u.save()
    return u


s = Subject()
form = NewChickForm(request.POST) # 1)do i add here `request.FILES` ?
if form.is_valid():
    s = form.do_save()
            # 2) s.profile_image = form.cleaned_data.get('profile_image')?

即使我做#1) 和#2),我仍然得到 NONE

最佳答案

确保您使用了正确的 enctype在您的 HTML 表单上:

<form enctype="multipart/form-data" method="post" action="/foo/">

另外,请确保绑定(bind) request.FILES当您构造表单对象时。
# Bound form with an image field, data from the request
>>> f = ContactFormWithMugshot(request.POST, request.FILES)

Binding uploaded files to a form

编辑: File Uploads

关于Django:form.is_valid 检查后,cleaned_data 缺少图像字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4330181/

相关文章:

python - 如何创建用于在 mongoDB 数据库中搜索的网页?

javascript - React 多步表单提交和验证

c - 当用户输入 char 而不是预期的 int 时提示错误

javascript - 自动复制在给定输入字段中写入的所有行,将它们粘贴到另一个浏览器元素中

python - 基于另一个 M2M 预填充 Django M2M 字段

django - 如何使用 call_command 执行 Django 的 `syncdb --noinput`?

asp.net - 如何动态添加带有验证的控件

c# - C Sharp 表格不断更新?

jquery - 如何在 jqgrid 表单编辑中保存数字输入类型的结果

python - 由 Web 应用程序而不是服务器协调的 HTTP 身份验证