Не верно определяется 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)