Мне нужен доступ к значению в обратном порядке, используя ForeignKey. Я хочу перейти от дочерней модели Category
к родительской модели Post
и взять значение title
в свой шаблон
Я пытался category.posts.title
, но это не дает мне никакого успеха.
Основная цель этого - создать <div>
для каждой категории и перечислить сообщения блога с этой категорией внизу.
Модель:
class Category(models.Model):
name = models.CharField(max_length=30)
class Post(models.Model):
slug = models.SlugField(max_length = 250, null = True, blank = True)
title = models.CharField(max_length = 250, default="Blog Post")
body = models.TextField()
created_on = models.DateTimeField(null=True)
last_modified = models.DateTimeField(null=True)
categories = models.ForeignKey('Category', related_name='posts', default="2", unique=False, on_delete=models.CASCADE)
Просмотр:
def blog_index(request):
posts = Post.objects.all().order_by('-created_on')
categories = Category.objects.all()
context = {
"posts": posts,
"categories": categories,
}
return render(request, "blog_index.html", context)
Шаблон
<div class="row">
<div style="padding: 0px;" class="col l12">
{% for category in categories %}
<div class="col l3">
<div style="background-color: white; box-shadow: 0 1px 15px 1px rgba(62,57,107,.07); border-radius: .6rem;" class="card ">
<div class="card-body text-center">
<div class="mb-4 pb-3"><i class="ti-briefcase text-muted font-40"></i></div>
<h5 class="mb-3"> <a href="{% url 'blog_category' category %}">{{ category.name }}</a></h5>
<div><a class="d-inline-flex align-items-center text-danger" ><a href="{% url 'blog_detail' category.name category.posts.slug category.posts.pk %}">{{ category.posts.title }}</a><i class="material-icons">
keyboard_arrow_right
</i></a></div>
</div>
</div>
</div>
{% endfor %}