I have an issue that I have been battling for a long time I 
want to get data out from different related models. I have three
models. Category, Author, Post. The Category model categories my post 
that are on the Post model. The issue I am having is this, when I perform 
my loop
on my template (i.e html file) I can get data out from my Post model but I 
can not
get data out from my Category model. Please I need someone to help me out 
or tell me
what I am doing wrong.
below is my sample code for you to know what I am talking about.

models.py
class Category(models.Model):
   name = models.CharField(max_length=100)
   tagline = models.TextField()

    def __str__(self):
       return self.name

class Author(models.Model):
   name = models.CharField(max_length=200)
   email = models.EmailField()

    def __str__(self):
       return self.name

class Post(models.Model):
   category = models.ForeignKey(Category, on_delete=models.CASCADE, null=
True, related_name='my_category')
   headline = models.CharField(max_length=255)
   body_text = models.TextField()
   authors = models.ManyToManyField(Author)
 

    def __str__(self):
       return self.headline

views.py
from first_app.models import Author, Category, Post
def post_from_cat(request, cat_id):
   b = Category.objects.get(pk=cat_id)
   result = b.my_category.all()
   return render(request, 'first_app/index.html', {'key':result})


on my app urls.py
from first_app import views

urlpatterns = [
   path('', views.home_app, name='home_app'),
   path('post-cat/<int:cat_id>/', views.post_from_cat, name='post_from_cat'
),
]


on my index.html file

    {% if key %}
   {% for k in key %}
   <p><strong>Category: </strong> {{ k.name }}</p>
   <p><strong>Title</strong><br>{{ k.headline }}</p>
   <p><strong>Body</strong><br>{{ k.body_text }}</p>
   <hr>
   {% endfor %}
   {% else %}
   <p>No data</p>
   {% endif %}


The resulting page on my browser



-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/3ddb6604-af4e-4eaf-b460-b55424d9c890%40googlegroups.com.

Reply via email to