Django Form FileField / ImageField, как это очистить? - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть Django ModelForm, подключенная к модели Django с помощью ImageField:

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. Я попытался установить photo в None или в пустую строку '', но ничего не очищает фотографию. Замена фото другим работает. Насколько я понимаю, поскольку "photo" - это ImageField, его можно установить только из аргумента files (второй аргумент в форме). Как очистить поле File / ImageField из формы?

Спасибо!

1 Ответ

0 голосов
/ 11 апреля 2019

Изменить модель на

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

, тогда вы можете установить его на None.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...