Re: How to retrieve data from different related model

22 views
Skip to first unread message
Message has been deleted

Manish Maurya

unread,
Oct 24, 2019, 7:53:18 AM10/24/19
to django...@googlegroups.com
its not looking so clear.


On Thu, 24 Oct 2019 at 17:21, Benedict Uwazie <nonw...@gmail.com> wrote:
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...@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.

Umang Bisht

unread,
Oct 24, 2019, 8:23:42 AM10/24/19
to django...@googlegroups.com
use select_related for querying related data from a model

Reply all
Reply to author
Forward
0 new messages