我在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_modified
设置为时间戳(非常类似于t_status
)?请注意,t_status
可以为空。 t_status
通常会从NULL更改为字符串approved
或rejected
。 user_status
是批准或拒绝此订单的人。
答案 0 :(得分:1)
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)