Как получить имя из id ForeignKey в django?

Выпуск

Когда я вызываю {{cats}} я получаю id, Как я могу получить название категории в том же месте?

Мой Html файл

    {% extends 'base.html' %}
    {% load static %}

    {% block title %}
    Blogue | {{cats}}
    {% endblock %}

    {% block content %}

Views.py

    def CategoryView(request, cats):
        category_posts = Post.objects.filter(category=cats)
        return render(request, 'categories.html', {'cats':cats.title(),'category_posts':category_posts})

Urls.py

   urlpatterns = [
       .........
       path('category/<str:cats>/', CategoryView, name='category-list'),
   ]

Models.py

      class Category(models.Model):
          name = models.CharField(max_length=255)

          def __str__(self):
              return self.name

          def get_absolute_url(self):
              return reverse('home')

      class Post(models.Model):
          title = models.CharField(max_length=255)
          author = models.ForeignKey(User, on_delete=models.CASCADE)
          body = models.TextField()
          post_date = models.DateField(auto_now_add=True)
          category = models.ForeignKey(Category ,max_length=60 ,default='Others', on_delete=models.CASCADE, related_name= 'cats')

          def __str__(self):
              return self.title + ' | ' + str(self.author)

          def get_absolute_url(self):
              return reverse('article-detail', args=(str(self.id)))

Я пробовал изменять с помощью класса категории, но пока не получил правильного вывода, а также пробовал использовать 'categories_post', но это тоже не помогло. Любая помощь будет оценена по достоинству! Заранее спасибо.

Вы можете .filter(…) [Django-doc] с:

Post.objects.filter(category__name=cats)

Можно использовать двойное подчеркивание (__) для поиска " сквозных" отношений.

Вы можете, например, посетить /category/programming/, что приведет к списку Post для категории programming. Вы можете определить абсолютную линейку для Category с помощью:

class Category(models.Model):
    name = models.CharField(max_length=255, db_index=True)

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('category-list', kwargs={'cats': self.name})

Однако, возможно, имеет смысл работать с SlugField [Django-doc], а не с CharField для фильтрации по категории.

Ссылки, с которыми вам следует работать:

<a href="{% url 'category-list' post.category.name %}"> 
Вернуться на верх