如何在该列(django)中的某些整数值之后增加 db table 中的所有列值?

how do increment all column values in db table after certain integer values in that column (django)?

假设我在 Django 中创建了“X”数据库table,其中包含列 id(autofiled)、name(charfield) 和 occurrence(integerfield),现在假设其中已有 3 行可用

id name occurrence
1 ABC 1
2 BCD 2
3 CDE 3

我想根据(排序)出现次数获取数据,我面临一个问题,我想添加出现次数为 2(已经存在)的行,以及出现次数更大的所有行比 2 自动更新和递增。 (基本上,它是在索引号上插入数据,其中值是名称,索引是出现忽略id)。例如-

id name occurrence
1 ABC 1
2 BCD 3
3 CDE 4
4 XYZ 2

提前致谢。

class FooBar(models.Model):
    occurrence = models.IntegerField()
    name = models.CharField(max_length=100)

    def save(self, *args, **kwargs):
        same_occurrence = FooBar.objects.filter(occurrence=self.occurrence).first()
        if same_occurrence:
            same_occurrence.occurrence = self.occurrence + 1
            same_occurrence.save()
        return super(FooBar, self).save(*args, **kwargs)
class FooBar(models.Model):
    occurrence = models.IntegerField()
    name = models.CharField(max_length=100)

Try out this query

Foobar.object.filter(occurence__gte=sort_number).update(occurence=F('occurence')+1)

-> 另一种方式

        course = module.course
        modules = course.modules.all()
        module_for_update = []
        i = 1
        for module in modules:
            if module.pk == int(module_id):
                module.order = order
                module_for_update.append(module)
                continue
            if order == i:
                i += 1
            module.order = i
            module_for_update.append(module)
            i += 1
        Module.objects.bulk_update(module_for_update, ["order"])