Пользовательское поле Django Model сравнивает предыдущие и новые значения - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть поле в админке, подобное этому:

enter image description here

В настоящее время добавление новых элементов в поле заменяет все поле новыми файлами (ФайлВвод позволяет несколько изображений).Однако цель состоит в том, чтобы иметь возможность сделать две вещи:

  • Загруженные фотографии добавляются к существующему списку фотографий вместо замены
  • С помощью флажков «Очистить» удаляются фотографии

Текущее представление базы данных - это postgres JSONField.Чтобы достичь текущего состояния, я переопределил виджет ClearableInputField и поле формы ImageField для поддержки нескольких файлов.

Я также создал настраиваемое поле «Фотоснимок», которое использует JSONField для загрузки файлов.Теперь вот моя самая большая проблема.В типичном сценарии, если поле очищено, файл / изображение будут удалены, если это требуется логикой приложения.Тем не менее, из-за того, что я возился с содержимым поля, чтобы удалить фотографии из хранилища, я не уверен, где удалить фотографии.Мне нравится думать об этом так.Мое поле - это «Модель», которая обладает некоторыми свойствами.Однако это поднимает один большой вопрос.Поскольку я работаю на уровне поля, я не могу получить доступ к предыдущему значению, чтобы сравнить значения для удаления или добавления фотографий.

Есть ли способ управлять этим на уровне поля?Причина, по которой я хочу этого добиться, заключается в том, что я хочу, чтобы мое поле «Фотографии» было автономным и использовалось во многих местах с минимальными изменениями (я не хочу каждый раз для этого писать код добавления).

...