Django ошибка viewset: объект QuerySet не имеет атрибута title - PullRequest
1 голос
/ 16 июня 2020

Я пытаюсь создать ViewSet для модели курса (чтобы просто отображать все курсы), но при попытке доступа к нему получаю следующую ошибку. Я новичок в создании ViewSets и Django в целом, что я делаю не так?

Django 2.2

Ошибка

AttributeError: Got AttributeError when attempting to get a value for field `title` on serializer `CourseSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `QuerySet` instance.
Original exception text was: 'QuerySet' object has no attribute 'title'.

CourseViewSet

class CourseViewSet(viewsets.ModelViewSet):
    def list(self, request):
        queryset = Course.objects.all()
        serializer = CourseSerializer(queryset)
        return Response(serializer.data)

CourseSerializer

class CourseSerializer(serializers.ModelSerializer):
    class Meta:
        model = Course
        fields = (
            'id',
            'title',
            'description',
            'active',
            'individual_result',
            'course_duration',
            'video',
            'manager_id'
        )

модели / Course

class Course(models.Model):
    title = models.CharField(max_length=255, blank=False, null=False)
    description = models.CharField(max_length=255, blank=True, null=True)
    active = models.BooleanField(default=True)
    individual_result = models.BooleanField(default=False) 
    course_duration = models.CharField(max_length=255, blank=True, null=True)  
    video = models.CharField(max_length=255, blank=True, null=True)  
    manager_id = models.ForeignKey(User, on_delete=models.CASCADE, null=True)

    def __str__(self):
        return self.title

1 Ответ

1 голос
/ 16 июня 2020

Вы должны сериализовать с помощью many=True, поскольку набор запросов - это коллекция объектов, которые могут содержать ноль, один или несколько элементов:

serializer = CourseSerializer(queryset<b>, many=True</b>)

Дополнительные сведения см. В разделе Работа с несколькими объектами [drf-doc] .

...