Django: Обнаружение изменений набора полей при сохранении модели

Проблема

У меня есть поле в моей модели, которое требует некоторых вычислений. Я хочу выполнить эти расчеты при сохранении модели. Однако, поскольку это требует больших ресурсов, я хочу выполнять эти вычисления только при изменении определенных полей.

Первоначальная мысль

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

Мои вопросы:

  1. Это лучший вариант? Если нет, расскажите, пожалуйста, что было бы лучше и почему.

  2. Если нет лучшего способа: какой хэш мне следует использовать? И почему?

  3. Какой тип поля модели Django мне следует использовать для сохранения хэша?

6
задан Belmin Fernandez 29 November 2010 в 19:11
поделиться