2013-04-08 33 views
3

我正在創建一個小型wiki應用並使用lastmodified_at屬性(auto_now)。現在我想要統計我的頁面的視圖。Django模型 - 無需觸摸即可更新屬性lastmodified_at

我的第一個想法是在我的維基文章對象中添加一個字段,並在調用showArticle視圖時將其添加一個字段。

不幸的是,這會導致lastmodified_at也被更新。

是否有另一種可能性,然後創建一個額外的表,其中包含article_id和計數器或刪除/重建我的auto_now屬性?

謝謝!

回答

2

我會忍不住有一個單獨的模型來跟蹤與FK網頁瀏覽到您的文章模型。

例如

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

然後,你可以使用相關的領域

+0

確定物品從模板調用的頁面數,這就是我想... – Ron 2013-04-09 06:52:43

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