2012-02-25 36 views
2

我有以下(簡化)類models.py如何在類的屬性設置或更改設定時間戳在Django

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的值改變時?請注意0​​可以是空白的。 t_status通常會從NULL更改爲字符串approvedrejecteduser_status是批准或拒絕此訂單的人。

回答

1

請參閱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) 
+0

看起來很有希望。我會檢查出來的。謝謝! – hobbes3 2012-02-25 09:45:04

相關問題