1
このサイトでは、記事やブログの2つのオブジェクトを利用しています。記事やブログを閲覧するたびに、関連するカウンターが1つ増えます。Djangoコンテンツタイプとデコレータ
アイデアは、記事とエントリの「人気」を測定する「トップテン」アプリケーションを持つことです。
私は複数のオブジェクトを使用しているため、トラッカーモデルで関連するオブジェクトにgenericForeignKeyを使用したいと思います。
#models.py
class Tracker(models.Model):
count = models.PositiveIntegerField(default=1)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
def hit(self):
self.count += 1
ビュー機能をラップするデコレータを作成したいと思いますが、それは必要ないかもしれません。
おかげ
のでpost_init信号が送信されますか?また、カウンターで信号を聞いて応答することで、特定の「インスタンス」がビュー内でインスタンス化された回数をカウントすることができます。驚くばかり! –
これは解決策ではありませんが、close:post_initシグナルはadminでもインスタンス化が発生するたびに送信されます。私はユーザービューだけを追跡する必要があります。私はカスタム信号を作ろうとします。 –
あなたのビューにobj.touched = Trueのような猿のパッチを当てて、オブジェクトがビューに触れているとマークする*ことができます。信号uでそれをチェックします(そしてそれをもう一度削除する必要があります) – vikingosegundo