django-logicaldelete

Скриншот программы:
django-logicaldelete
Детали программы:
Версия: 1.1 Beta 1 Dev3
Дата загрузки: 12 May 15
Разработчик: Patrick Altman
Тип распространения: Бесплатная
Популярность: 1

Rating: nan/5 (Total Votes: 0)

комментарии разработчиков
Django-logicaldelete является небольшой и простое приложение, которое я бросил вместе, чтобы получить повторное из чего-то, что я делаю почти каждый проект и каждой модели я создаю и NBSP;. Это слишком легко для хороших данных, чтобы исключить и это невозможно будет восстановить. Это также очень легко исправить это путем переопределения метода, модели удаления () и просто маркировки записей как удаленные, а затем используя Менеджеры Django, чтобы переопределить поведение по умолчанию, так что логично удаленные элементы не возвращается в querysets.
Есть два исключения, однако, что я нашел полезным этого правила.
& NBSP; 1. В админ я хотел бы видеть все с показателем ли он был удален, с возможностью фильтрации до просто активных записей, (или удаленных по этому вопросу).
& NBSP; 2. Я до сих пор думаю, что это является допустимым запрос, когда элемент выбирается для по это значение первичного ключа, что объект должен вернуться, даже если он помечается как удаленный.
Использование Django-logicaldelete
Используя приложение очень просто:
& NBSP; 1. Поставьте logicaldelete подпапку на вашем пути Python.
& NBSP; 2. Наследовать от logicaldelete.models.Model для всех моделей, которые вы хотели бы поделиться в этой функциональности.
& NBSP; 3. Создание и / или Зарегистрироваться админов для каждого из этих моделей с использованием logicaldelete.admin.ModelAdmin
Дополнительные
Логические удаляет обрабатываются по дате штамповки date_removed колонки. Кроме того, через DATE_CREATED и date_modified колонки будут заполнены удобства.
Возможные Расширения
Вы можете легко создать подкласс этих двух классов, чтобы обеспечить общую и полезную функциональность вашей модели.
UUID первичного ключа
Я, как правило, с помощью UUID поля для моих первичных ключей, потому что они позволяют мне шарда мои таблицы, если и когда мне нужно, кроме того, они обеспечивают затемненный идентификатор моим данным (люди не могут определить, сколько из определенного объекта я имею в моя база данных, если я не хочу, чтобы они знали, а просто смотрит в целое число идентификатор в URL).
Последовательность поле
Много раз я нахожу это полезно иметь целое поле на моей модели, которые позволяют и явно управляется последовательности. Я обычно осуществить это как сортировать по убыванию реализации, где данные сортируются от высокой к низкой по значению последовательности.
Для того, чтобы осуществить это ты подкласс и модель, и ModelAdmin, где модель будет очевидный простой добавление IntegerField, в ModelAdmin, будет превалировать get_query_set, чтобы сделать что-то вроде:
класс SequencedModel (logicaldelete.models.Model):
& NBSP; последовательность = models.IntegerField ()
класс MyLogicalDeletedManager (logicaldelete.models.LogicalDeletedManager):
& NBSP; Def get_query_set (само):
& NBSP; если self.model:
& NBSP;. QS = супер (MyLogicalDeletedManager, само) .get_query_set () фильтр (date_removed__isnull = True)
& NBSP; если SequencedModel в inspect.getmro (self.model):
& NBSP; QS = qs.order_by ('- последовательность')
& NBSP; возврат QS

Что нового В этом выпуске:

  • Изменен все, чтобы all_with_deleted на LogicalDeleteManager
  • LogicalDeleteManager переехал из logicaldelete.models в logicaldelete.managers
  • Удалено удалено и всё querysets из logicaldelete.models.Model

Требования

  • Python
  • Джанго

Другие программы разработчика Patrick Altman

Комментарии к django-logicaldelete

Комментарии не найдены
добавить комментарий
Включите картинки!