Как увеличить значения всех столбцов в таблице 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)