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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Метод модели Django - create_or_update
  • Использование Pre_delete Signal в django
  • Почему я не могу получить доступ к классу Meta в качестве атрибута класса Django Model?
  • Могу ли я добавить текст справки в поля модели django?
  • Переопределить форму в администраторе Django
  • Есть ли умный способ получить предыдущий / следующий элемент с помощью Django ORM?
  • Как работает доступ к внешнему ключу Django
  • Django: get_or_create Повышает дублируемую запись вместе with_unique
  • сделанные пули неправильны в url django
  • Может ли Django ORM хранить неподписанное 64-битное целое число (aka ulong64 или uint64) в надежной бэкэндо-агностической манере?
  • Django: добавить изображение в ImageField из URL-адреса изображения
  •  
    Interesting Posts for Van-Lav

    Redis: возвращает все значения, хранящиеся в базе данных

    В чем разница между сайтом и приложением в Django?

    Почему run_in_executor asyncio блокирует обработчик торнадо?

    «pydoc -w EXPRESSIONS» не работает, но «pydoc EXPRESSIONS» делает. Зачем? (все заглавные разделы справки)

    math overflow для не очень переполненного вычисления в python

    Зачем строить надзор над внутри здания?

    Извлеките Vips изображение и сохраните его в numpy массиве так же, как с PIL?

    Heroku и OpenCV с Python

    Импортируйте модуль Python с PyImport_ImportModuleEx для плагина gedit

    Hadoop Streaming: Mapper 'wrapping' бинарный исполняемый файл

    Google App Engine, среда выполнения Python 2.7, ImportError: невозможно импортировать имя djangoforms

    jQuery ui sortable – сохранить в базу данных с помощью Python / Flask / SQLite

    Порядок аргументов ключевого слова и не ключевого слова

    Ошибка поврежденной трубы при запуске django-теста с селеном

    Импорт модуля python в dict (для использования в качестве globals в execfile ())?

    Python - лучший язык программирования в мире.