Изменение значений рядов в отношении к другому ряду в django-models

Я работаю над системой флеш-карт на django

вся система Лейтнера заключается в порядке БОКСОВ, например box1, box2 ,box3, поэтому, когда вы решаете карту в боксе 1, она перемещается назад в бокс 2 и наоборот...

Теперь, что если я хочу изменить порядок ящика? Или даже удалить его? Не лучше ли изменить порядок других ящиков? Например, [box1, box2, box3] => [box1, box2]

Итак, теперь вы поняли идею, вот структура модели BOX в файле django-models:

class Box(models.Model):

    name = models.CharField(max_length=100)
    order = models.IntegerField(blank=False)
    end_days = models.IntegerField(blank=False)
    end_hours = models.IntegerField(blank=False)
    end_minutes = models.IntegerField(blank=False, default=0)
    def __str__(self):
        return self.name

Теперь большой вопрос, когда некоторые строки('obj') удалены/порядок изменен, как я могу увеличить/уменьшить другие строки?

И если у вас есть идеи лучше, чем то, что я пытаюсь сделать, пожалуйста, поделитесь ими .

regards

В случае с приказом об изменении, это должно выполняться в представлении или чем-то подобном, там нужно вывести все ячейки и выполнить обновление следующим образом

Пример, переместите 3 в 2 и 2 в 3

old_box_number = 3
new_box_number = 2
for box in Box.objects.all():
   if box.sequence < new_box_number: continue 
   if box.sequence == new_box_number:
         box.sequence= old_box_number
         box.save()
  elif box.sequence == old_box_number:
         box.sequence= new_box_number
         box.save()

Для удаления сделайте то же самое, но уменьшите верхний ящик на один.

Вернуться на верх