Автоматическое порядковое число в django queryset ? Как отсортировать эту штуку в Django?

У меня проблема с сортировкой такой вещи, как "Порядковое число".

Например, у меня есть родительская модель (Order) и дочерняя (Item). Я не знаю, как сделать поле Items ID, начинающееся от 1 до N, где N - количество товаров в данном конкретном заказе. Мне трудно объяснить, поэтому я поместил несколько изображений с вещами, которые я хочу сделать, и попытался объяснить это на примере.

Моя проблема на экране

И вот мои models.py:

class Order(models.Model):
    PENDING = 0
    DURING = 1
    DONE = 2
    STATUS = (
        (PENDING, 'Oczekuję'),
        (DURING, 'W trakcie'),
        (DONE, 'Zakończone'),
    )
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='order_user')
    date_created = models.DateTimeField(auto_now_add=True, null=True)
    slug = RandomSlugField(length=7, exclude_lower=True, exclude_upper=True, exclude_vowels=True)
    status = models.SmallIntegerField(choices=STATUS, default=PENDING)

    class Meta:
        verbose_name = "zamówienie"
        verbose_name_plural = "zamówienia"

    def __str__(self):
        return "Zamówienie ID#{} z dnia {}".format(self.slug, self.date_created.strftime('%d/%m/%y'))

    def get_absolute_url(self):
        return reverse('detail', kwargs={'slug': self.slug})

class Item(models.Model):

    order = models.ForeignKey(Order, null=True, on_delete=models.SET_NULL)
    lenght = models.DecimalField(max_digits=4, decimal_places=0)
    width = models.DecimalField(max_digits=4, decimal_places=0)
    lenght = models.PositiveSmallIntegerField(blank=False)
    quantity = models.SmallIntegerField(default=1, blank=False, null=False)
    description = models.CharField(max_length=255, blank=True, null=True)
    lenght1 = models.BooleanField(default=False)
    lenght2 = models.BooleanField(default=False)
    width1 = models.BooleanField(default=False)
    width2 = models.BooleanField(default=False)

    class Meta:

        verbose_name = "formatka"
        verbose_name_plural = "formatki"

    def __str__(self):
        return "{} x {}".format(self.width, self.lenght)
#Make items ID count from 1 for each Order
for index, i in enumerate(item):
    i.id = index + 1
    i.save()
<
Вернуться на верх