我在模型中设置了一个“ 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)