AttributeError: объект 'int' не имеет атрибута 'pk' - Django
Я пытаюсь вернуть очень простой сериализованный набор запросов и получаю эту ошибку:
AttributeError: объект 'int' не имеет атрибута 'pk'
Модели:
class Portfolio(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=200, blank=False, null=False)
class Image(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
portfolio = models.ForeignKey(Image, related_name="images", on_delete=models.CASCADE)
thumb = models.URLField(blank=True, null=True)
Вид:
class PortfolioViewSet(viewsets.ModelViewSet):
serializer_class = serializers.PortfolioSerializer
queryset = models.Portfolio.objects.all()
permission_classes = (permissions.IsAuthenticated, core_permissions.IsMineOnly)
def get_queryset(self):
portfolios = self.request.user.portfolio_set.all()
ser = self.serializer_class(portfolios, many=True)
data = ser.data
return data
сериализаторы:
class PortfolioSerializer(serializers.ModelSerializer):
images = ImageSerializer(many=True)
class Meta:
model = models.Portfolio
exclude = ('user',)
class ImageSerializer(serializers.ModelSerializer):
class Meta:
model = Image
fields = '__all__'
Я читал этот ответ, в котором говорится, что мы должны использовать validated_data после первого вызова is_valid()
, но я сериализую не данные, а queryset, поэтому я не могу вызвать этот метод.
get_queryset
должен возвращать queryset.
def get_queryset(self):
return self.request.user.portfolio_set.all()