12. Как использовать поле slug в django для большей читабельности?

Slug - это часть URL, которая идентифицирует конкретную страницу на сайте в форме, доступной для чтения пользователями. Для того чтобы это работало, django предлагает нам slugfield. Оно может быть реализовано следующим образом. У нас уже есть модель Article, мы добавим к ней slugfield, чтобы сделать ее читабельной для пользователей.:

from django.utils.text import slugify
class Article(models.Model):
    headline = models.CharField(max_length=100)
    . . .
    slug = models.SlugField(unique=True)

    def save(self, *args, **kwargs):
        self.slug = slugify(self.headline)
        super(Article, self).save(*args, **kwargs)
    . . .

>>> u1 = User.objects.get(id=1)
>>> from datetime import date
>>> a1 = Article.objects.create(headline="todays market report", pub_date=date(2018, 3, 6), reporter=u1)
>>> a1.save()
// slug here is auto-generated, we haven't created it in the above create method.
>>> a1.slug
'todays-market-report'
Слизь полезна, потому что:
он дружелюбен к человеку (например, /blog/ вместо /1/).
хорошим SEO является создание последовательности в заголовке, рубрике и URL.
Вернуться на верх