Отслеживание изменений – Django

У меня есть различные модели, которые я хотел бы отслеживать и собирать статистические данные.

Проблема заключается в том, как хранить изменения в течение всего времени.

Я думал о другой альтернативе:

  • Сохраняя журнал в TextField, откройте его и обновите его каждый раз, когда модель будет сохранена.
  • Альтернативно рассортируйте список и сохраните его в TextField.
  • Сохраните журналы на жестком диске.

Каковы ваши предложения?

3 Solutions collect form web for “Отслеживание изменений – Django”

Не изобретайте велосипед. Используйте django-reversion для внесения изменений в журнал.

Тем не менее, я бы разбил статистику на отдельную модель.

Прочитайте мой учитель элементарной химии: «Если вы его не записываете, этого не произошло», поэтому сохраняйте журналы в файле.

Поскольку данные журнала не пересекаются с вашими данными приложения (на самом деле это метаданные), держите их отдельно. Вы можете войти в таблицу базы данных, но она должна отличаться от вашей модели.

Текстовые данные о рассоле трудно для людей читать, бинарные данные о рассоле еще больше; войдите в легко анализируемый формат, и данные могут быть легко импортированы в программное обеспечение для анализа.

У меня была схожая ситуация, в которой мы должны были сохранить историю изменений. Но нам также нужно было провести аудит, чтобы отслеживать, кто внес изменения и возможность вернуться. В нашем подходе сохранение в базе данных казалось более логичным. Однако, учитывая, что у вас есть статистические данные, и это будет большой, возможно, для вас будет предпочтительнее отдельный подход, основанный на файлах.

В любом случае вы должны использовать общий механизм для регистрации изменений на моделях, а не для кодирования каждой модели.

Взгляните на это: http://www.djangosnippets.org/snippets/1052/

  • Проблема Django QuerySet .defer () - ошибка или функция?
  • Модельный подход наследования с ORM Django
  • Являются ли экземпляры Django Model Hashable?
  • Есть ли умный способ получить предыдущий / следующий элемент с помощью Django ORM?
  • Хорошие способы сортировки набора запросов? - Django
  • Переопределить форму в администраторе Django
  • когда использовать pre_save, save, post_save в django?
  • Django UUIDField modelfield вызывает ошибку в Django admin: плохо сформированная шестнадцатеричная строка UUID
  • Python - лучший язык программирования в мире.