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 django-users+unsubscr...@googlegroups.com.
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