TypeError: cannot unpack non-iterable int object in Django views function









up vote
2
down vote

favorite












Following is my code in URL.py, views.py and HTML page. However, it returns me the error: TypeError: cannot unpack non-iterable int object.



urlpatterns = [
path('', views.blogs_home, name='blogs'),
path('<int:id>', views.single_blog, name='detailed_view'),


]



I am trying to capture the id of posts blogs in the list view to get the blog object from the database with id query. Following is my view code.



def single_blog(request,id):
blog_single = Blogs.objects.get(id)
context = 'blog_single': blog_single
template = 'blog_home.html'

return render(request, template, context)


However, as I mentioned, it returns the above error.



Could someone explain what I am doing wrong










share|improve this question

























    up vote
    2
    down vote

    favorite












    Following is my code in URL.py, views.py and HTML page. However, it returns me the error: TypeError: cannot unpack non-iterable int object.



    urlpatterns = [
    path('', views.blogs_home, name='blogs'),
    path('<int:id>', views.single_blog, name='detailed_view'),


    ]



    I am trying to capture the id of posts blogs in the list view to get the blog object from the database with id query. Following is my view code.



    def single_blog(request,id):
    blog_single = Blogs.objects.get(id)
    context = 'blog_single': blog_single
    template = 'blog_home.html'

    return render(request, template, context)


    However, as I mentioned, it returns the above error.



    Could someone explain what I am doing wrong










    share|improve this question























      up vote
      2
      down vote

      favorite









      up vote
      2
      down vote

      favorite











      Following is my code in URL.py, views.py and HTML page. However, it returns me the error: TypeError: cannot unpack non-iterable int object.



      urlpatterns = [
      path('', views.blogs_home, name='blogs'),
      path('<int:id>', views.single_blog, name='detailed_view'),


      ]



      I am trying to capture the id of posts blogs in the list view to get the blog object from the database with id query. Following is my view code.



      def single_blog(request,id):
      blog_single = Blogs.objects.get(id)
      context = 'blog_single': blog_single
      template = 'blog_home.html'

      return render(request, template, context)


      However, as I mentioned, it returns the above error.



      Could someone explain what I am doing wrong










      share|improve this question













      Following is my code in URL.py, views.py and HTML page. However, it returns me the error: TypeError: cannot unpack non-iterable int object.



      urlpatterns = [
      path('', views.blogs_home, name='blogs'),
      path('<int:id>', views.single_blog, name='detailed_view'),


      ]



      I am trying to capture the id of posts blogs in the list view to get the blog object from the database with id query. Following is my view code.



      def single_blog(request,id):
      blog_single = Blogs.objects.get(id)
      context = 'blog_single': blog_single
      template = 'blog_home.html'

      return render(request, template, context)


      However, as I mentioned, it returns the above error.



      Could someone explain what I am doing wrong







      python django django-views django-urls






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 10 at 19:33









      jeff

      132112




      132112






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          1
          down vote



          accepted










          You should specify the name of the parameter in .filter(..) or .get(..) calls:



          def single_blog(request, id):
          blog_single = Blogs.objects.get(id=id)
          context = 'blog_single': blog_single
          template = 'blog_home.html'

          return render(request, template, context)


          I also propose to rename your variable to something else (so both in the urls.py and views.py), since id is a builtin function, and now a local variable is "hiding" this builtin.






          share|improve this answer




















          • Thank you, Willem and your suggestions as well. Thanks, mate.
            – jeff
            Nov 10 at 19:38










          • Hello Williem. I have changed the id in both urls.py and views.py to post_id. However, a new error appears - Reverse for 'detailed_view' with no arguments not found. 1 pattern(s) tried: ['blogs/(?P<post_id>[0-9]+)$']
            – jeff
            Nov 10 at 19:52










          • @jeff: that is probably because there is a % url ... % with id=..., instead of post_id=....
            – Willem Van Onsem
            Nov 10 at 20:46










          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













           

          draft saved


          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53242684%2ftypeerror-cannot-unpack-non-iterable-int-object-in-django-views-function%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          1
          down vote



          accepted










          You should specify the name of the parameter in .filter(..) or .get(..) calls:



          def single_blog(request, id):
          blog_single = Blogs.objects.get(id=id)
          context = 'blog_single': blog_single
          template = 'blog_home.html'

          return render(request, template, context)


          I also propose to rename your variable to something else (so both in the urls.py and views.py), since id is a builtin function, and now a local variable is "hiding" this builtin.






          share|improve this answer




















          • Thank you, Willem and your suggestions as well. Thanks, mate.
            – jeff
            Nov 10 at 19:38










          • Hello Williem. I have changed the id in both urls.py and views.py to post_id. However, a new error appears - Reverse for 'detailed_view' with no arguments not found. 1 pattern(s) tried: ['blogs/(?P<post_id>[0-9]+)$']
            – jeff
            Nov 10 at 19:52










          • @jeff: that is probably because there is a % url ... % with id=..., instead of post_id=....
            – Willem Van Onsem
            Nov 10 at 20:46














          up vote
          1
          down vote



          accepted










          You should specify the name of the parameter in .filter(..) or .get(..) calls:



          def single_blog(request, id):
          blog_single = Blogs.objects.get(id=id)
          context = 'blog_single': blog_single
          template = 'blog_home.html'

          return render(request, template, context)


          I also propose to rename your variable to something else (so both in the urls.py and views.py), since id is a builtin function, and now a local variable is "hiding" this builtin.






          share|improve this answer




















          • Thank you, Willem and your suggestions as well. Thanks, mate.
            – jeff
            Nov 10 at 19:38










          • Hello Williem. I have changed the id in both urls.py and views.py to post_id. However, a new error appears - Reverse for 'detailed_view' with no arguments not found. 1 pattern(s) tried: ['blogs/(?P<post_id>[0-9]+)$']
            – jeff
            Nov 10 at 19:52










          • @jeff: that is probably because there is a % url ... % with id=..., instead of post_id=....
            – Willem Van Onsem
            Nov 10 at 20:46












          up vote
          1
          down vote



          accepted







          up vote
          1
          down vote



          accepted






          You should specify the name of the parameter in .filter(..) or .get(..) calls:



          def single_blog(request, id):
          blog_single = Blogs.objects.get(id=id)
          context = 'blog_single': blog_single
          template = 'blog_home.html'

          return render(request, template, context)


          I also propose to rename your variable to something else (so both in the urls.py and views.py), since id is a builtin function, and now a local variable is "hiding" this builtin.






          share|improve this answer












          You should specify the name of the parameter in .filter(..) or .get(..) calls:



          def single_blog(request, id):
          blog_single = Blogs.objects.get(id=id)
          context = 'blog_single': blog_single
          template = 'blog_home.html'

          return render(request, template, context)


          I also propose to rename your variable to something else (so both in the urls.py and views.py), since id is a builtin function, and now a local variable is "hiding" this builtin.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 10 at 19:35









          Willem Van Onsem

          140k16132223




          140k16132223











          • Thank you, Willem and your suggestions as well. Thanks, mate.
            – jeff
            Nov 10 at 19:38










          • Hello Williem. I have changed the id in both urls.py and views.py to post_id. However, a new error appears - Reverse for 'detailed_view' with no arguments not found. 1 pattern(s) tried: ['blogs/(?P<post_id>[0-9]+)$']
            – jeff
            Nov 10 at 19:52










          • @jeff: that is probably because there is a % url ... % with id=..., instead of post_id=....
            – Willem Van Onsem
            Nov 10 at 20:46
















          • Thank you, Willem and your suggestions as well. Thanks, mate.
            – jeff
            Nov 10 at 19:38










          • Hello Williem. I have changed the id in both urls.py and views.py to post_id. However, a new error appears - Reverse for 'detailed_view' with no arguments not found. 1 pattern(s) tried: ['blogs/(?P<post_id>[0-9]+)$']
            – jeff
            Nov 10 at 19:52










          • @jeff: that is probably because there is a % url ... % with id=..., instead of post_id=....
            – Willem Van Onsem
            Nov 10 at 20:46















          Thank you, Willem and your suggestions as well. Thanks, mate.
          – jeff
          Nov 10 at 19:38




          Thank you, Willem and your suggestions as well. Thanks, mate.
          – jeff
          Nov 10 at 19:38












          Hello Williem. I have changed the id in both urls.py and views.py to post_id. However, a new error appears - Reverse for 'detailed_view' with no arguments not found. 1 pattern(s) tried: ['blogs/(?P<post_id>[0-9]+)$']
          – jeff
          Nov 10 at 19:52




          Hello Williem. I have changed the id in both urls.py and views.py to post_id. However, a new error appears - Reverse for 'detailed_view' with no arguments not found. 1 pattern(s) tried: ['blogs/(?P<post_id>[0-9]+)$']
          – jeff
          Nov 10 at 19:52












          @jeff: that is probably because there is a % url ... % with id=..., instead of post_id=....
          – Willem Van Onsem
          Nov 10 at 20:46




          @jeff: that is probably because there is a % url ... % with id=..., instead of post_id=....
          – Willem Van Onsem
          Nov 10 at 20:46

















           

          draft saved


          draft discarded















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53242684%2ftypeerror-cannot-unpack-non-iterable-int-object-in-django-views-function%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Top Tejano songwriter Luis Silva dead of heart attack at 64

          政党

          天津地下鉄3号線