2010-03-26 81 views
5

我有一堆不同的字段,如first_name,last_name等的模型。我也有字段first_name_ud,last_name_ud等,它们对应于相关字段的最后更新日期(即,当first_name被修改时,则first_name_ud被设置为当前日期)。当一个不同的字段被改变时自动更新字段

是否有办法让这种情况自动发生,或者我需要检查每次保存对象时更改哪些字段,然后更新相关的“_ud”字段。

非常感谢!

回答

0

感谢您的帮助。我最终修改了模型的保存方法,我认为它会起作用:

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() 
相关问题