Incrementando el slug al evitar el error de integridad en los modelos de django, método de guardar

Tengo un modelo con dos campos como abajo

modelos.py

class Publisher(models.Model):
    name = models.CharField(max_length=200)
    slug = models.SlugField(max_length=150, unique=True)    

    def save(self, *args, **kwargs):
        if not self.id and not self.slug:
            slug = slugify(self.name)
            try:
                slug_exits = Publisher.objects.get(slug=slug)
                if slug_exits:
                    self.slug = slug + '_1'
            except Publisher.DoesNotExist:
                self.slug = slug
        super(Publisher, self).save(*args, **kwargs)

Aquí estoy creando una babosa basada en elname campo como podemos ver arriba

Así que cuando intentamos crear un editor conname already exists, lasave método del modelo añadirá la_1 hasta el final.

Y cuando volvamos a intentar crear un nuevo disco con los mismos.name, unIntegrity el error será levantado como abajo

>> Publisher.objects.create(name="abc")
   result: slug will be "abc"
>> Publisher.objects.create(name="abc")
   result: slug will be "abc_1"
>> Publisher.objects.create(name="abc")
   result: 

     .................
     .................
     34     del cursor
     35     del connection
---> 36     raise errorclass, errorvalue
     37 
     38 re_numeric_part = re.compile(r"^(\d+)")

IntegrityError: (1062, "Duplicate entry 'abc_1' for key 'slug'")

Entonces, lo que quiero es si el título / slug ya existe en la base de datos y si el slug contiene un número (al final, como abc_1), deberíamos incrementarlo ese número

Así que todo lo que quiero esincrement the number in the slug como a continuación si el título / slug ya existe en la base de datos

abc
abc_1
abc_2
abc_3  

Entonces, ¿alguien puede hacerme saber cómo implementar la lógica anterior de incrementar la bala?

Gracias por adelantado......

Respuestas a la pregunta(1)

Su respuesta a la pregunta