У меня есть модель с набором различных полей как first_name, last_name, и т.д. У меня также есть поля first_name_ud, last_name_ud, и т.д. которые соответствуют последнее обновление дата смежных областей (т.е. когда first_name изменяется, затем first_name_ud установлен на текущую дату).
Есть ли способ заставить это произойти автоматически или делает я должен проверить то, что поля изменили каждый раз, когда я сохраняю объект и затем обновляю связанные "_ud" поля.
Большое спасибо!
Либо напишите Поле
потомки , которые обновляют оба поля, либо используйте триггеры на стороне сервера. .
Спасибо за помощь. В итоге я изменил метод сохранения модели, который, я думаю, будет работать:
def save(self):
current_date = date.today()
if self.id:
try:
old = UserProfile.objects.get(pk = self.id)
fields = UserProfile._meta.fields
for field in fields:
field_name = field.name
date_name = field_name + '_ud'
if not field_name.endswith('_ud') and date_name in fields:
if self.__dict__[field_name] != old.__dict__[field_name]:
self.__dict__[date_name] = current_date
self.date_updated = current_date
except UserProfile.DoesNotExit:
pass
super(UserProfile, self).save()