2010-03-26 82 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() 
相關問題