Как увеличить значения всех столбцов в таблице db после определенных целочисленных значений в этом столбце (django)?

Предположим, я создал таблицу базы данных "X" в Django, которая имеет столбцы id(autofiled), name(charfield) и occurrence(integerfield), теперь предположим, что 3 строки уже доступны в ней

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

Я хочу получать данные на основе (упорядочивания) номера вхождения, я столкнулся с проблемой, что я хочу добавить строку с номером вхождения 2 (уже имеющуюся), и все строки с номерами вхождения больше 2 обновляются и увеличиваются автоматически. (По сути, это вставка данных по номеру индекса, где значение - имя, а индекс - идентификатор игнорирования вхождения). Например-

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)

Попробуйте этот запрос

Foobar.object.filter(occurence__gte=sort_number).update(occurence=F('occurence')+1)
Вернуться на верх