Не верно определяется ID при создании объекта в Django

Нужно было сделать собственный slug, в который бы входил номер объекта (уникальный для каждого адреса) и номер ID в БД (sqlite3), т.к. тип объекта по адресу может быть различным. В итоге хотел получить для себя в БД уникальный slug = №_ID. Все удалось сделать, НО не могу понять где ошибка. Создал к прмиеру 3 записей в БД, удалил две записи (2, 3), создаю новую запись, ID показывает как следующий номер записи в БД (4), но при этом slug = №_2, а должен быть равен ID (4). После чего, создаю еще одну запись (3), все работает нормально ID = 5, slug = №_5.

models.py

def funcc():
    nm = Object.objects.all()
    ob = Object.objects.count()
    ob = ob + 1
    for nn in nm:
        if nn.id > 0:
            ob = Object.objects.latest('id')
            ob = ob.id + 1
        else:
            ob
    return ob


id_object = models.CharField(max_length=50, default=funcc, verbose_name="ID Объекта", unique=True, blank=True, null=True, editable=False)
id_fias = models.CharField(max_length=50, default='', null=False, blank=False, db_index=True)
slug = models.SlugField(unique=True, blank=True, null=True)

def save(self, *args, **kwargs):

        if not self.slug:
            self.slug = str('{}_{}'.format(self.id_fias, self.id_object))
        super().save(*args, **kwargs)
Вернуться на верх