TypeError: невозможно распаковать не повторяемый объект int в функции представлений Django - PullRequest
0 голосов
/ 10 ноября 2018

Ниже приведен мой код в URL.py, views.py и HTML-странице. Однако он возвращает мне ошибку: TypeError: не может распаковать не повторяемый объект int.

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

]

Я пытаюсь захватить идентификатор записей блогов в представлении списка, чтобы получить объект блога из базы данных с запросом идентификатора. Ниже приведен код моего просмотра.

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)

Однако, как я уже говорил, он возвращает вышеуказанную ошибку.

Может кто-нибудь объяснить, что я делаю неправильно

1 Ответ

0 голосов
/ 10 ноября 2018

Вы должны указать имя параметра в .filter(..) или .get(..) звонках:

def single_blog(request, id):
   blog_single = Blogs.objects.get(<b>id=id</b>)
   context = {'blog_single': blog_single}
   template = 'blog_home.html'

   return render(request, template, context)

Я также предлагаю переименовать вашу переменную во что-то другое (как в urls.py, так и в views.py), поскольку id является встроенной функцией, и теперь локальная переменная "скрывает" эту встроенную функцию.

...