【问题标题】:Django Form FileField/ImageField how to clear it?Django Form FileField/ImageField 怎么清除呢?
【发布时间】:2019-04-11 12:13:07
【问题描述】:

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

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 字段?

谢谢!

【问题讨论】:

    标签: django django-models django-forms


    【解决方案1】:

    将模型更改为

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

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

    【讨论】:

      猜你喜欢
      • 2011-02-10
      • 2012-05-08
      • 2013-04-19
      • 1970-01-01
      • 2019-02-10
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      • 2014-06-30
      相关资源
      最近更新 更多