【问题标题】: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


    【解决方案1】:

    write Field children 更新两个字段或使用服务器端触发器。

    【讨论】:

      【解决方案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()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-09
        • 1970-01-01
        • 1970-01-01
        • 2012-08-06
        • 2014-05-25
        • 1970-01-01
        相关资源
        最近更新 更多