Skip to content

Instantly share code, notes, and snippets.

@aynm142
Last active February 20, 2017 20:23
Show Gist options
  • Save aynm142/a47708ac5d8852ab72c73ecf55b486c3 to your computer and use it in GitHub Desktop.
Save aynm142/a47708ac5d8852ab72c73ecf55b486c3 to your computer and use it in GitHub Desktop.
from django.db import models
from django.template.defaultfilters import slugify
from transliterate import translit
class Category(models.Model):
name = models.CharField(max_length=128)
views = models.IntegerField(default=0)
likes = models.IntegerField(default=0)
slug = models.SlugField(unique=True)
def save(self, *args, **kwargs):
returned_length = Category.objects.filter(name=self.name)
if returned_length:
self.slug = slugify(translit(self.name, 'ru', reversed=True)) + "-" + str(len(returned_length) + 1)
else:
self.slug = slugify(translit(self.name, 'ru', reversed=True))
super().save(*args, **kwargs)
'''def save(self, *args, **kwargs):
temp_slug = slugify(translit(self.name, 'ru', reversed=True))
while Category.objects.filter(slug=temp_slug):
self.slug = slugify(translit(self.name, 'ru', reversed=True)) + "-2"
temp_slug = self.slug
if not self.slug:
self.slug = slugify(translit(self.name, 'ru', reversed=True))
super().save(*args, **kwargs)
'''
class Meta:
verbose_name_plural = 'Categories'
def __str__(self):
return self.name
class Page(models.Model):
category = models.ForeignKey(Category)
title = models.CharField(max_length=128)
url = models.URLField()
views = models.IntegerField(default=0)
def __str__(self):
return self.title
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment