Я начал изучать django несколько дней go и пытался создать свой первый блог.
Моя проблема в том, что я решил добавить дополнительное поле для своих категорий (подзаголовок), которое я хочу быть в моем шаблоне, но не могу понять, как это сделать.
my models.py
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=20)
subheading = models.CharField(max_length=160)
def __str__(self):
return self.name
class Post(models.Model):
title = models.CharField(max_length=255)
body = models.TextField()
link = models.TextField()
categories = models.ManyToManyField("Category", related_name="posts")
def __str__(self):
return self.title
views.py
from django.shortcuts import render
from blog.models import Post, Category
def blog_category(request, category):
posts = Post.objects.filter(
categories__name__contains=category
).order_by(
'title'
)
context = {
"category": category,
"posts": posts
}
return render(request, "blog_category.html", context)
Единственный способ category.name или category.subheading отображаются в шаблоне (учителем) внутри {% для сообщений в сообщениях%} {% endfor%}:
{% for post in posts %}
{% for category in post.categories.all %}
{{ category.subheading }}
{% endfor %}
{% endfor %}
В этом случае, если на странице категории 10 сообщений, подзаголовок повторяется 10 раз. Мне нужно только напечатать 1 для описания категории.
Есть ли способ позвонить category.subheading за пределами {% для сообщения в сообщениях%}? Или как-то распечатать только один результат.
ps извините за мой примитивный уровень Engli sh.