3

小さな wiki アプリを作成しており、lastmodified_at 属性 ( auto_now) を使用しています。ここで、自分のページのビューをカウントしたいと思います。

私が最初に考えたのは、wiki 記事オブジェクトにフィールドを追加し、showArticleビューが呼び出された場合にそれを 1 つ具体化することでした。

残念ながら、これによりlastmodified_atも更新されます。

article_id とカウンターを含む追加のテーブルを作成するか、auto_now属性を削除/再構築する別の可能性はありますか?

ありがとう!

4

2 に答える 2

2

記事モデルへの FK を使用してページ ビューを追跡する別のモデルを作成したいと思います。

例えば

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

次に、記事関連フィールドを使用して、テンプレートからページ数を呼び出すことができます

于 2013-04-08T15:16:30.313 に答える
0

すでにいくつかの答えがあります:

たとえば、auto_now を直接使用しないでください。保存する前に、保存または変更フィールドの auto_now プロパティをオーバーライドします。

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
于 2013-04-08T15:15:49.983 に答える