Django模型 - 无需触摸即可更新属性lastmodified_at
问题描述:
我正在创建一个小型wiki应用并使用lastmodified_at属性(auto_now
)。现在我想要统计我的页面的视图。Django模型 - 无需触摸即可更新属性lastmodified_at
我的第一个想法是在我的维基文章对象中添加一个字段,并在调用showArticle
视图时将其添加一个字段。
不幸的是,这会导致lastmodified_at
也被更新。
是否有另一种可能性,然后创建一个额外的表,其中包含article_id和计数器或删除/重建我的auto_now
属性?
谢谢!
答
我会忍不住有一个单独的模型来跟踪与FK网页浏览到您的文章模型。
例如
class ArticleViewCount(model):
counter = models.PositiveIntegerField()
article = models.OneToOneField(Article)
然后,你可以使用相关的领域
答
有几个答案已经:
例如,不直接使用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
确定物品从模板调用的页面数,这就是我想... – Ron 2013-04-09 06:52:43