Процедура удаления меток
При удалении метки предварительно необходимо удалять эту метку из всех объектов, где она есть (если метка останется, то будет ошибка при обращении). Число объектов с метками может измеряться десятками миллионов. Выполнение этой задачи из интерфейса пользователя не целесообразно. Это тяжелая процедура и реализация удаления в реальном времени может излишне загрузить систему. Но необходимость очиски от меток объектов возможна. Вариант реализации удаления метки может быть таким:
- Предварительно очистить все объекты от удаляемой метки. Делается командой, название метки предаётся как параметр. Список моделей и полей присутствуют в коде самой команды. Для поиска конкретной метки в модели использовать запрос вида:
OneModel.objects.filter(labels__contains=["onelabel"])
. В полеlabels
метки хранятся в списке (массиве). Удаляемую метку необходимо удалить из списка в полеlabels
оставив другие метки и сделать это нужно однимupdate
запросомORM
. - Удаление метки в интерфейсе. Должна быть предварительная проверка наличия этой метки в объектах.