【问题标题】:Automatically Update Field when a Different Field is Changed更改不同字段时自动更新字段
【发布时间】:2010-03-26 08:02:54
【问题描述】:
我有一个模型,其中包含许多不同的字段,例如 first_name、last_name 等。我还有字段 first_name_ud、last_name_ud 等,它们对应于相关字段的最后更新日期(即,当 first_name 被修改时,然后是 first_name_ud设置为当前日期)。
有没有办法让这种情况自动发生,或者我是否需要在每次保存对象时检查哪些字段发生了变化,然后更新相关的“_ud”字段。
非常感谢!
【问题讨论】:
标签:
python
django
django-models
django-forms
【解决方案2】:
感谢您的帮助。我最终修改了模型的保存方法,我认为它会起作用:
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()