我在 models.py 中有一个以下(简化的)类:
class Order( models.Model ) :
status = models.CharField( max_length = 135, blank = True )
t_status = models.DateTimeField( null = True, blank = True )
user_status = models.ForeignKey( User, null = True, blank = True )
t_created = models.DateTimeField( auto_now_add = True )
t_modified = models.DateTimeField( auto_now = True )
当 t_status 的值发生变化时,如何将 t_status 设置为时间戳(很像 t_modified)?请注意,t_status 可以为空。 t_status 通常会从 NULL 更改为字符串 approved 或 rejected。 user_status 是批准或拒绝此订单的人。
请您参考如下方法:
参见 django-dirtyfields .
class Order(DirtyFieldsMixin, models.Model):
...
def order_pre_save(sender, instance):
if "status" in instance.get_dirty_fields():
instance.t_status = datetime.datetime.now()
pre_save.connect(order_pre_save, sender=Order)
