use select_related for querying related data from a model

On Thu, Oct 24, 2019 at 5:22 PM Manish Maurya <[email protected]> wrote:

> its not looking so clear.
>
>
> On Thu, 24 Oct 2019 at 17:21, Benedict Uwazie <[email protected]> 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 [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
>> <https://groups.google.com/d/msgid/django-users/3ddb6604-af4e-4eaf-b460-b55424d9c890%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> 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/CANyc5fcCf9U81qSdmON7rf7X5f88SmSpOSgtsDELDq4ZAEfXow%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-users/CANyc5fcCf9U81qSdmON7rf7X5f88SmSpOSgtsDELDq4ZAEfXow%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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/CALmP4tQZRfFmHA0jhPaUJ2RdiXvanw0zx0_9t7gf0yenRZ8%2BNw%40mail.gmail.com.

Reply via email to