Автоматически Поле Обновления, когда Другое Поле Изменяется

У меня есть модель с набором различных полей как first_name, last_name, и т.д. У меня также есть поля first_name_ud, last_name_ud, и т.д. которые соответствуют последнее обновление дата смежных областей (т.е. когда first_name изменяется, затем first_name_ud установлен на текущую дату).

Есть ли способ заставить это произойти автоматически или делает я должен проверить то, что поля изменили каждый раз, когда я сохраняю объект и затем обновляю связанные "_ud" поля.

Большое спасибо!

5
задан Gordon 26 March 2010 в 08:02
поделиться

2 ответа

Либо напишите Поле потомки , которые обновляют оба поля, либо используйте триггеры на стороне сервера. .

3
ответ дан 15 December 2019 в 06:22
поделиться

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

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()
0
ответ дан 15 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: