Обнаруживать, изменилась ли модель до вызова сохранения в Django

У меня есть модель базы данных, которая обновляется на основе изменений в удаленных данных (через скребок HTML).

Я хочу сохранить поле с именем changed – отметка времени, обозначающая, когда в последний раз значения модели изменились с того, что они были ранее (обратите внимание, что это отличается от auto_now поскольку эти поля обновляются каждый раз, когда вызывается метод save модели).

  • Запустите manage.py с экземпляра AWS EB Linux
  • import module == из модуля import *?
  • Как отключить ведение журнала во время выполнения модульных тестов в Python Django?
  • Определение класса модели в оболочке Django не выполняется
  • Как вычесть две даты в Django / Python?
  • AttributeError: объект 'module' не имеет атрибута 'setdefaultencoding'
  • Вот мой вопрос:

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

  • В Django есть способ отображать варианты как флажки?
  • Использование request.user с Django ModelForm
  • Разве Django поставляется с шаблонами аутентификации для использования с модулем django.contrib.auth?
  • Что делает это «-» в движке шаблонов jinja2?
  • Django: Когда настраивать save vs с помощью сигнала после сохранения
  • Есть ли промежуточное программное обеспечение Django / плагин, который регистрирует все мои запросы организованным образом?
  • 5 Solutions collect form web for “Обнаруживать, изменилась ли модель до вызова сохранения в Django”

    http://code.activestate.com/pypm/django-dirtyfields/

    Отслеживает грязные / измененные поля в экземпляре модели django.

    Если вы сохраните свой экземпляр через форму, вы можете проверить form.has_changed() .

    Вы можете попытаться вычислить контрольную сумму значений записи при ее сохранении. Затем, когда вы прочтете его позже, пересчитайте контрольную сумму и посмотрите, не изменилось ли она. Возможно, функция crc32 в стандартном модуле Python zlib . (Я не уверен, что это за производительность, поэтому вы можете это расследовать).

    Мне кажется, что вы хотите, это сигналы: http://docs.djangoproject.com/en/1.2/topics/signals/

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

    Эта библиотека имеет следы поиска FK.

    https://github.com/mmilkin/django_dirty_bits

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