1

save私のアイテムモデルの方法では、ある量に従ってランキングを計算するために、インスタンスをDBに保存する必要があります。

def save(self, *args, **kwargs):        

    super(Item, self).save(*args, **kwargs)

    # get all the Item instances, order and get the ranking of the current instance

    self.ranking = ranking

    super(Item, self).save(*args, **kwargs)

うまくいくようですが、望ましくない影響が出ないようにしたいと思います。それで大丈夫ですか?

4

1 に答える 1

1

これが悪影響を与えることはないと思いますが、別のアプローチは、ランキングを更新するだけで、モデル全体を保存しないことです。あなたはこのようにそれを行うことができます:

def save(self, *args, **kwargs):
    super(Item, self).save(*args, **kwargs)


    Item.objects.filter(pk=self.pk).update(ranking=ranking)
于 2012-12-06T20:38:32.977 に答える