Ошибка Django при создании веб-приложения для блога

urls.py

path("blogpost/<int:id>", views.blogpost, name="blogpost)

views.py

def blogpost(request, id):
    post = Blog1.objects.filter(post_id = id)[0]
    return render(request, 'blogpost.html', {'post':post})

У меня возникает ошибка, что объект Blog1 является итерируемым.

Я попробовал

все, и моя модель была создана также для blog1, и первичный ключ имеет проблемы в post_id, но я не знаю, почему я получаю эту ошибку о том, что объект является iterabl. Есть идеи?

Я думаю, ты хочешь это...?

def blogpost(request, id):
    post = Blog1.objects.get(id=id)
    return render(request, 'blogpost.html', {'post':post})

При попытке импортировать один объект полезно использовать функцию get_object_or_404.

from django.shortcuts import get_object_or_404
from .models import Blog1

def blogpost(request, id):
    post = get_object_or_404(Blog1, id=id)
    return render(request, 'blogpost.html', {'post':post})

Обратитесь к этой статье.

Когда вы пытаетесь объявить один объект, всегда используйте get_object_or_404 в django.

from django.shortcuts import get_object_or_404 from .models import Blog1

def blogpost(request, id): post = get_object_or_404(Blog1, id=id) return render(request, 'blogpost.html', {'post':post})

Это сработало для меня и полезно для других.

Вернуться на верх