Django Rest FrameworkでAPIを作製し、Reactでaxiosを用いてAPIを叩いたのですが、画像がURLではなくローカル環境のパスが渡ってきます。
状況としては、TwitterのようなWebアプリを作製しており、自分のプロフィール情報を取得しようとすると画像がローカルパス担っているため表示されない状況です。
ですが、全ユーザーのプロフィール情報を取得する際には上手くURLを取得し反映されているので、Djangoでのsetting.py、React側でのミスではないと思います。
views.pyのviewsetsとAPIViewの違いだと思うのですが...
django/views.py
1# 自分のプロフィールを取得するView 2class MyProfileAPIView(views.APIView): 3 def get(self, request, *args, **kwargs): 4 my_prof = models.Profile.objects.get(userProfile=request.user) 5 serializer = serializers.ProfileSerializer(my_prof) 6 return Response(serializer.data, status.HTTP_200_OK) 7 8#全プロフィール取得用 9class ProfileViewSet(viewsets.ModelViewSet): 10 queryset = models.Profile.objects.all() 11 serializer_class = serializers.ProfileSerializer 12 13 def perform_create(self, serializer): 14 serializer.save(userProfile=self.request.user)
django/models.py
1class Profile(models.Model): 2 id = models.CharField(max_length=30, default=create_id, editable=False, primary_key=True) 3 user_id = models.CharField(max_length=30, unique=True, default=create_unique_user_id, blank=False) 4 username = models.CharField(max_length=30, blank=True, default='') 5 age = models.PositiveIntegerField(default=0, blank=True) 6 prof_image = models.ImageField(upload_to=create_path_of_prof_image, default='', null=True, blank=True) 7 userProfile = models.OneToOneField(get_user_model(), on_delete=models.CASCADE, related_name='related_user') 8 created_at = models.DateTimeField(auto_now_add=True) 9 updated_at = models.DateTimeField(auto_now=True) 10 11 def __str__(self): 12 return self.user_id