super.save()方法可以在模型中多次使用吗?

时间:2012-12-06 19:40:01

标签: django

在我的项目模型的save方法中,我需要将实例保存在数据库中,以便根据某些数量计算排名:

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)

它似乎有用,但我想确保不会产生不良影响。那可以吗?

1 个答案:

答案 0 :(得分:1)

我不认为这会产生任何负面影响,但另一种方法只是更新排名而不是保存整个模型。你可以这样做:

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


    Item.objects.filter(pk=self.pk).update(ranking=ranking)