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