Django Rest Framework-返回Response(serializer.data)图像字段获取null而不是url

时间:2019-10-30 02:53:39

标签: django django-rest-framework

我在模型中设置了一个“ ImageField”,使用邮递员发布数据。图片上传成功。但是,当我的视图返回serializers.data时,图像字段为null,这应该是图像的URL。有人有什么想法吗?我非常感谢。 这是回应

{
    "user": 7,
    "category": "2018",
    "cover": null,
    "name": "Louisville"
}

这是我的模特

class Journey(models.Model):
    def user_directory_path(self, filename):
        return 'media/journey_cover/{0}/{1}'.format(self.user_id, filename)

    user = models.ForeignKey(to=UserProfile, related_name="journeys", on_delete=models.CASCADE)
    category = models.CharField(null=False, max_length=50)
    cover = models.ImageField(upload_to=user_directory_path)
    created = models.DateTimeField(auto_now_add=True)
    name = models.CharField(null=False, max_length=50)

我的序列化器:

class JourneySerializer(serializers.ModelSerializer):
    user = serializers.PrimaryKeyRelatedField(queryset=UserProfile.objects.all())
    cover = serializers.ImageField(use_url=True)

    class Meta:
        model = Journey
        fields = ['user', 'category', 'cover', 'name']

我的观点

class JourneyList(APIView):
    permission_classes = [IsOwnerOrReadOnly, permissions.IsAuthenticatedOrReadOnly]
    parser_classes = [MultiPartParser, FormParser]

    def post(self, request):
        print(request.content_type)
        serializer = JourneySerializer(data=request.data)
        if serializer.is_valid(raise_exception=True):
            journey = serializer.create(serializer.validated_data)
            journey.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

0 个答案:

没有答案
相关问题