2010-03-26 8 views
5

나는 first_name, last_name 등과 같이 여러 필드로 구성된 모델을 가지고 있습니다. 관련 필드의 마지막 업데이트 날짜에 해당하는 first_name_ud, last_name_ud 등의 필드도 있습니다. (즉, first_name이 수정되면 first_name_ud가 현재 날짜로 설정됩니다).다른 필드가 변경 될 때 필드를 자동으로 업데이트

이 작업을 자동으로 수행 할 수있는 방법이 있습니까? 아니면 개체를 저장할 때마다 변경된 필드를 확인한 다음 관련 "_ud"필드를 업데이트해야합니까?

고맙습니다.

답변

3

두 필드를 모두 업데이트하거나 서버 측 트리거를 사용하는 write Field children.

0

도움 주셔서 감사합니다. 모델의 save 메소드를 수정하는 것으로 끝났습니다.

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() 
관련 문제