Новый элемент проверяет отсутствующий идентификатор и создает его - PullRequest
0 голосов
/ 29 июня 2019

Есть метод, позволяющий Django проверять пропущенный номер идентификатора и создавать новый элемент в этом слоте, вместо создания с новым идентификатором.

Вот что я пытаюсь сделать

У меня есть модель :

class BuyInvoice(models.Model):
    date = models.DateTimeField(auto_now_add=True)
    user = models.ForeignKey(User, on_delete=PROTECT)
    branch = models.ForeignKey(Branch, on_delete=PROTECT)
    supplier = models.ForeignKey(Supplier, on_delete=PROTECT)
    total = models.PositiveIntegerField(default=0)
    is_done = models.BooleanField(default=False)
    is_canceled = models.BooleanField(default=False)

    def __str__(self):
        return 'فاتورة بيع رقم ' + str(self.pk)

каждый раз, когда я добавляю в него новый элемент, он автоматически генерирует идентификатор как 1, 2, 3, 4, 5

Теперь, если я удалил элемент с идентификатором 3, я пытаюсь создать новый элемент, я хочу, чтобы он был добавлен к идентификатору 3 вместо 6

1 Ответ

0 голосов
/ 29 июня 2019

Я сделал это вручную, перебирая элементы и находя пробел, чтобы заполнить:

                check_for_gap = BuyInvoice.objects.all()
                number = 1
                for item in check_for_gap:
                    if item.id != number:
                        new_invoice = BuyInvoice.objects.create(user=user, branch=branch, supplier=supplier_obj, id=number)
                        return redirect('invoice_buy_details', pk=new_invoice.id)
                    else:
                        number += 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...