Удаление файла при клонировании модели, содержащей поле ImageField

Когда я сохраняю() модель, содержащую ImageField, сигнал post_save базы модели удаляет файл, который ранее был связан с ImageField, что вполне справедливо, поскольку файл изменился на новое значение.

Однако, если я клонировал модель, т.е. загрузил объект из базы данных, установил его pk в None, установил его ImageField в новое значение и затем выполнил save(), я не хочу, чтобы он удалил исходный файл, потому что он все еще используется объектом, который был клонирован.

item = Item.objects.get(id=kwargs['pk'])
item.pk = None
item.thumbnail = <new image>
item.save()                 #<--causes the original Item's thumbnail file to be deleted

Такое ощущение, что это настолько обычная процедура, что должен быть шаблон, как это сделать без переопределения сигналов, но, черт возьми, я не могу его найти. Кто-нибудь может направить меня в нужном направлении, пожалуйста.

Вернуться на верх