Я установил «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)