Django Form FileField / ImageField如何清除它?

时间:2019-04-11 12:13:07

标签: django django-models django-forms

我有一个使用ImageField连接到Django模型的Django ModelForm:

photo = models.ImageField(upload_to='athletes/', blank=True, default='')

这是我设置表单的方式:

def get_form(info, **input):
    pk = input.pop("id", None)
    form_kwargs = {}
    if pk:
        instance = Person.objects.get(pk=pk)
        form_kwargs["instance"] = instance
    print(input)
    return PersonForm(input, info.context.FILES, **form_kwargs)

这是印刷品的输出:

{
 'name': 'John Doe',
 'photo': None,
 'discipline': 'Triathlon'
}

我正在尝试通过清除照片属性来更新现有模型。我尝试将photo设置为None或设置为空字符串'',但是没有任何东西可以清除照片。用另一张代替照片。据我了解,由于“照片”是一个ImageField,因此只能从文件参数(该表格中的第二个参数)进行设置。如何清除表单中的File / ImageField字段?

谢谢!

1 个答案:

答案 0 :(得分:0)

将模型更改为

photo = models.ImageField(upload_to='athletes/', blank=True, default='', null=True)

然后您可以将其设置为无。