2017-06-27 5 views

答えて

2

ことがジャンゴの信号を使用して行うことができますええ、あなたが使用している場合、その後に、mymodelのインポートを削除し、signals.pyファイルまたはあなたのmodels.pyでこのロジックを使用することができますが

from django.db.models.signals import pre_save 
from django.dispatch import receiver 
from myapp.models import MyModel 


@receiver(post_save, sender=MyModel) 
def my_handler(sender, **kwargs): 
    total = MyModel.objects.count() //this will return total number of rows 
    if total % 128 == 0: 
     do what you want to do 
models.pyファイルであり、
+0

この回答は大丈夫ですが、 ユーザーが削除してもう一度追加すると問題が発生します(件数について)。だから、彼は使用する必要がある目的に応じて()または最新のIDを取得する(どのように多くの時間を確認するには、何行のinstit) –

+0

行が削除された場合は、新しい行を追加すると、 1、問題のようなものはありません。新しい列が追加されたときにのみトリガーされます。 – Exprator

+1

新しい128エントリごとに何かするには、質問に記載されているように 'total%128 == 0: 。 – badiya

0

そのモデルpost_save(docs)にシグナルハンドラを追加することができます。次に、created引数がTrueの場合は、カウンタを増分します。カウンタが0のモジュロに達すると、関数を呼び出します。

関連する問題