Объект модели Django (Вопросы) не является итерируемым

ошибка: объект 'Questions' не является итерируемым

код models.py:

class Questions(models.Model):
title = models.CharField(max_length = 150)
slug = models.SlugField(max_length = 10, unique = True)
body = models.TextField()
category = models.ManyToManyField(Category, related_name = "questions")
author = models.ForeignKey(User, on_delete = models.CASCADE)
created = models.DateTimeField(auto_now_add = True)
picture = models.ImageField(upload_to = "questions/%Y/%m/%d", null = True, blank = True)
status = models.BooleanField(default = True)

    def get_absolute_url(self):
        return reverse("questions:ques_detail", args = [self.slug, self.id])

кодviews.py:

def QuestionDetail(request, question, pk):
    question = get_object_or_404(Questions, slug = question, id = pk)

    return render(request, "questions/ques_detail.html", {"questions": question})
Код

urls.py:

urlpatterns = [
    path('<slug:question>/<int:pk>', QuestionDetail, name = "questiondetail")

Наверное, где-то есть недопонимание.

И действительно, чего вы хотите достичь?

Если вы хотите получить один экземпляр, ваш код выглядит хорошо, но итерация по экземплярам не имеет смысла.

Если вы хотите получить QuerySet, то вам придется создать другое представление. Например :

def questions(request):
    questions = get_list_or_404(Questions)
    return render(request, "questions/ques_detail.html", {"questions": questions})

Также вам следует позаботиться об именовании ваших функций и переменных в питоническом стиле.

Некоторые документы можно найти здесь

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