获取抽象类静态字段值

时间:2016-10-14 18:44:00

标签: django

在我的模型中,我创建了一个抽象基类来存储有关上次数据库修改的信息。为此,我重写了 save 方法,其中静态日期时间字段用当前时间更新 当我尝试检索上次修改时间时,返回一个DeferredAttribute对象,获取该值的唯一方法是通过从实例化对象中调用该字段。但是,如果删除数据库中的所有对象,我将无法读取该值。

class Timestamp(models.Model):
    modified = models.DateTimeField(null=True)

    def save(self, *args, **kwargs):
        Timestamp.modified = timezone.now()
        super(Timestamp, self).save(*args, **kwargs)

    class Meta:
        abstract = True


class Node(Timestamp):
    latitude = models.FloatField(default=0.0)
    longitude = models.FloatField(default=0.0)

# ...
# few more subclasses of Timestamp

有没有办法在没有派生类对象的情况下获取修改的字段值?

编辑:
看起来无法将数据存储在静态字段中,因此 modified 变量永远不会保存到数据库中。在这种情况下,我会按照McAbra的回复。

1 个答案:

答案 0 :(得分:1)

你可以简单地说:

class Timestamp(models.Model):
    created_at = models.DateTimeField(auto_add=True)
    updated_at = models.DateTimeField(auto_add_now=True)

    class Meta:
        abstract = True


class Node(Timestamp):
    latitude = models.FloatField(default=0.0)
    longitude = models.FloatField(default=0.0)