信号代码:
@receiver(post_save, sender=TestModel)
def update_log(sender, instance, **kwargs):
TestModelLog.objects.create(description=instance.description, datetime=instance.updated)
@receiver(post_delete, sender=TestModel)
def delete_log(sender, instance, **kwargs):
TestModelLog.objects.create(description=instance.description, datetime=now())
模型代码:
class TestModel(models.Model):
description = models.CharField(max_length=34)
updated = models.DateTimeField(auto_now=True)
我制作了类似上面的信号代码,用于捕获TestModel
的日志。
如您所见,我可以使用instance
作为datetime=instance.updated
来获取更新时间。它与TestModel
的更新时间正确相同。
当我想要删除时间时,datetime=instance.updated
无效。
所以我尝试使用datetime=now()
捕获已删除的时间。
但我很好奇除了datetime=now()
之外还有其他好办法。
你能让我知道抓住对象删除时间的其他好方法吗?
答案 0 :(得分:1)
在您的TestModelLog
中,您可能会有以下内容:
class TestModelLog(models.Model):
description = models.CharField(max_length=34)
updated = models.DateTimeField(auto_now_add=True)
然后创建TestModelLog应该是:
TestModelLog.objects.create(description=instance.description)
因为auto_now_add
会发挥魔力。