我有一个使用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字段?
谢谢!
答案 0 :(得分:0)
将模型更改为
photo = models.ImageField(upload_to='athletes/', blank=True, default='', null=True)
然后您可以将其设置为无。