Обновить все объекты ниже удаленного объекта в моделях django?

Я создал класс, который хранит данные для главы в книге, как показано ниже

class Chapters(models.Model):
    id = models.AutoField(primary_key=True)
    chapter_number = models.IntegerField(blank=True)
    name = models.CharField(max_length=255)
    slug = models.SlugField(unique=True)

    def __str__(self):
        return self.name

    def save(self, *args, **kwargs):
        if not self.chapter_number:
            last_chapter = Chapters.objects.latest('chapter_number')
            self.chapter_number = last_chapter.chapter_number + 1
        self.slug = slugify(self.name)
        same_occurrence = Chapters.objects.filter(chapter_number=self.chapter_number).first()
        if same_occurrence:
            same_occurrence.chapter_number = self.chapter_number + 1
            same_occurrence.save()
        super(Chapters, self).save(*args, **kwargs)

теперь, согласно функции сохранения главы при добавлении между другими главами (

)
id name chapter_number
1 ABC 1
2 BCD 2
3 CDE 3

), то все следующие главы будут обновлены, так как их номер главы увеличится на единицу. добавить name=XYZ at chapter_number=2

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

но теперь, если я удалю 1 или 4 или 5 глав, то последовательность номеров глав не изменится.

id name chapter_number
1 ABC 1
4 BCD 2
2 CDE 3
3 XYZ 4
5 FGH 5
7 IJK 6
6 PQR 7

Я удаляю chapter_number 2, 3, 4, тогда обновленная таблица должна иметь вид

id name chapter_number
1 ABC 1
5 FGH 2
7 IJK 3
6 PQR 4

не так

id name chapter_number
1 ABC 1
5 FGH 5
7 IJK 6
6 PQR 7
Вернуться на верх