Gashington
@Gashington

Почему не выводится get_absolute_url в template?

Здравствуйте. Возникла проблема с выводом get_absolute_url в template.
Вот мой models.py:

class Category(models.Model):
    category_name = models.CharField(max_length=100)

    def __unicode__(self):
        return self.category_name


class Post(models.Model):
    title = models.CharField(max_length=255)
    datetime = models.DateField(u'Дата публикации')
    content = RichTextField()
    category = models.ForeignKey(Category)
    slug = models.SlugField(max_length=255, blank=True)

    def save(self, *args, **kwargs):
        if not self.id:
            self.slug = translit.slugify(self.title)
            super(Post, self).save(*args, **kwargs)

    def __unicode__(self):
        return self.title

    def get_absolute_url(self):
        return '/blog/%i/' % self.id

В шаблоне ссылка выводится вот так
<a href="{{ post.get_absolute_url }}">{{ post.title }}</a>

Ссылка рабочая вида <a href="/blog/1/">Первый пост</a>
Но при использование
def get_absolute_url(self):
        return '/blog/%i/' % self.slug)


Выводит пустую ссылку Перерыл кучу форумов и инфы Но так и не понял как правильно задавать get_absolute_url
  • Вопрос задан
  • 3630 просмотров
Решения вопроса 1
maxaon
@maxaon
У вас неправильный форматтер (%i)
def get_absolute_url(self):
        return '/blog/%s/' % self.slug)


Но стиль является устаревшим. format предпочительнее.
def get_absolute_url(self):
        return '/blog/{}/'.format(self.slug)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы