我在 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)
我是一名优秀的程序员,十分优秀!