Django模型 - 更新属性而不触及lastmodified_at

时间:2013-04-08 14:05:29

标签: python django django-models timestamp

我正在创建一个小型wiki应用并使用lastmodified_at属性(auto_now)。现在我想算一下我的页面视图。

我的第一个想法是在我的wiki文章对象中添加一个字段,并在调用showArticle视图时将其体现为一个。

不幸的是,这也会导致lastmodified_at更新。

是否有另一种可能性,然后创建一个额外的表,其中包含article_id和计数器或删除/重建我的auto_now属性?

谢谢!

2 个答案:

答案 0 :(得分:2)

我很想有一个单独的模型来跟踪你的文章模型的FK页面浏览量。

e.g。

class ArticleViewCount(model):
    counter = models.PositiveIntegerField()
    article = models.OneToOneField(Article)

然后,您可以使用文章相关字段

从模板中调用页数

答案 1 :(得分:0)

已经有几个答案:

例如,不要直接使用auto_now,覆盖保存 或者在保存之前更改字段的auto_now属性。

Temporarily disable auto_now / auto_now_add

如果您想保留auto_now,我将提供另一种脏方法:

class Temp(models.Model):
    test = models.CharField(max_length=255)       
    updated = models.DateTimeFeild(auto_now=True)

    def save_without_updated(self):
        self._meta.get_field("updated").auto_now = False
        # self.meta.auto_created = False
        self.save()
        # self.meta.auto_created = True
        self._meta.get_field("updated").auto_now = True