Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class City(models.Model):
- name = models.CharField(max_length=200, unique=True, verbose_name='Название')
- slug = models.SlugField(max_length=220, verbose_name='Slug', blank=True)
- def __str__(self):
- return self.name
- def make_slug(self, instance_before):
- if not instance_before:
- self.slug = create_slug(self.name)
- def save(self, *args, **kwargs):
- instance_before = City.objects.get(pk=self.pk) if self.id else None
- self.make_slug(instance_before)
- super().save(*args, **kwargs)
- def create_slug(val):
- return slugify(unidecode(val))
- def unique_slug(model, slug, instance=None):
- orig = slug
- for x in itertools.count(1):
- if instance:
- if not model.objects.filter(slug=slug).exclude(pk=instance.pk).exists():
- break
- else:
- if not model.objects.filter(slug=slug).exists():
- break
- slug = '%s-%d' % (orig, x)
- return slug
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement