How this Line of code works

25 views
Skip to first unread message

Mayur Bagul

unread,
Apr 14, 2019, 3:46:56 AM4/14/19
to Django users
In below code i didnt understand how colored line of code is working with template code ?

why we are passing Question and primary key? instead of dictionary to context variable.

plz help me to get out of this confusion.

thanking you.


 view.py


from django.shortcuts import get_object_or_404, render

from .models import Question
# ...
def detail(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    return render(request, 'polls/detail.html', {'question': question})



 detail.html


<h1>{{ question.question_text }}</h1>
<ul>
{% for choice in question.choice_set.all %}
    <li>{{ choice.choice_text }}</li>
{% endfor %}
</ul>




vineeth sagar

unread,
Apr 14, 2019, 3:55:13 AM4/14/19
to django...@googlegroups.com
Hi Mayur,

get_object_or_404, returns an object if it exists in the database or it will raise a 404 exception. So if the object is in the DB, django render template is done, in your case detail.html is rendered with the context dictionary.If there's no row peertaining to the query, then Http404  is raised. So django exception handling kicks in and based on the error code and your debug parameter a particular template is selected.

regards
Vineeth

--
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 post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/73130e11-1eaf-4f03-8b56-3d6d4be6fd50%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

gulam rabbani

unread,
Apr 14, 2019, 8:11:06 AM4/14/19
to django...@googlegroups.com
It will give you to fetch the id ! Until end of the id 

Mayur Bagul

unread,
Apr 15, 2019, 12:20:55 AM4/15/19
to Django users
Hello vineeth,

thanks for information. u missed to mention about why we passing Question class and primary key in get_object_or_404() ? 
How passing such arguments gonna work? 


On Sunday, April 14, 2019 at 1:25:13 PM UTC+5:30, vineeth sagar wrote:
Hi Mayur,

get_object_or_404, returns an object if it exists in the database or it will raise a 404 exception. So if the object is in the DB, django render template is done, in your case detail.html is rendered with the context dictionary.If there's no row peertaining to the query, then Http404  is raised. So django exception handling kicks in and based on the error code and your debug parameter a particular template is selected.

regards
Vineeth

On Sun, 14 Apr 2019, 13:16 Mayur Bagul, <mayur...@gmail.com> wrote:
In below code i didnt understand how colored line of code is working with template code ?

why we are passing Question and primary key? instead of dictionary to context variable.

plz help me to get out of this confusion.

thanking you.


 view.py


from django.shortcuts import get_object_or_404, render

from .models import Question
# ...
def detail(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    return render(request, 'polls/detail.html', {'question': question})



 detail.html


<h1>{{ question.question_text }}</h1>
<ul>
{% for choice in question.choice_set.all %}
    <li>{{ choice.choice_text }}</li>
{% endfor %}
</ul>




--
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...@googlegroups.com.

Mayur Bagul

unread,
Apr 15, 2019, 12:22:03 AM4/15/19
to Django users
how passing Question and pk=question_id gonna help?


On Sunday, April 14, 2019 at 5:41:06 PM UTC+5:30, gulam rabbani wrote:
It will give you to fetch the id ! Until end of the id 
On Sun, 14 Apr, 2019 at 1:47 PM, Mayur Bagul <mayur...@gmail.com> wrote:
In below code i didnt understand how colored line of code is working with template code ?

why we are passing Question and primary key? instead of dictionary to context variable.

plz help me to get out of this confusion.

thanking you.


 view.py


from django.shortcuts import get_object_or_404, render

from .models import Question
# ...
def detail(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    return render(request, 'polls/detail.html', {'question': question})



 detail.html


<h1>{{ question.question_text }}</h1>
<ul>
{% for choice in question.choice_set.all %}
    <li>{{ choice.choice_text }}</li>
{% endfor %}
</ul>




--
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...@googlegroups.com.

Jani Tiainen

unread,
Apr 15, 2019, 2:29:51 AM4/15/19
to django...@googlegroups.com
Hi.

get_object_or_404 works so that first argument is the model class you want to query. Rest of the parameters are filters that mus return a single object.

You can find this information from the Django docs as well.


To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.

Mayur Bagul

unread,
Apr 16, 2019, 12:45:51 AM4/16/19
to Django users
hello jani,

thanks for hep. i read django doc and this is the example from it but there is no information provided for why these parameters are used. 
but thanks for your information it is useful like others gave me.

thanking you.


On Monday, April 15, 2019 at 11:59:51 AM UTC+5:30, Jani Tiainen wrote:
Hi.

get_object_or_404 works so that first argument is the model class you want to query. Rest of the parameters are filters that mus return a single object.

You can find this information from the Django docs as well.


Milind Thombre

unread,
Apr 16, 2019, 7:21:21 AM4/16/19
to django...@googlegroups.com
hi Mayur,
What does this application do?
Milind

To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
Reply all
Reply to author
Forward
0 new messages