How to get Full URL or get absolute url In Django
this is use full to get full url for images or files.
getting:
Need: (after apply below process we get full url)
getting:
[
{
"id": 1,
"photo_url": "/media/media/11_sUhP0CC.png"
}
]
Need: (after apply below process we get full url)
[
{
"id": 1,
"photo_url": "http://localhost:8000/media/media/11_sUhP0CC.png"
}
]
Existing code:
models.py
class Car(models.Model):
name = models.CharField(max_length=255)
price = models.DecimalField(max_digits=5, decimal_places=2)
photo = models.ImageField(upload_to='cars')
serializers.py
class CarSerializer(serializers.ModelSerializer):
class Meta:
model = Car
fields = ('id','name','price', 'photo')
views.py
class CarView(APIView):
permission_classes = ()
def get(self, request):
car = Car.objects.all()
serializer = CarSerializer(car)
return Response(serializer.data)
Need to Do Modificatio:
serializers.py
class CarSerializer(serializers.ModelSerializer):
photo_url = serializers.SerializerMethodField()
class Meta:
model = Car
fields = ('id','name','price', 'photo_url')
def get_photo_url(self, car):
request = self.context.get('request')
photo_url = car.photo.url
return request.build_absolute_uri(photo_url)
views.py:
class ApplicationLogo(viewsets.ModelViewSet):
queryset = Logo.objects.all()
serializer_class = LogoSerializer
permission_classes = (IsAuthenticated,)
def list(self,request):
if request.user:
qs = Object.objects.all()
return Response(MySerializer(qs, many=True, context={'request': request}).data)
queryset = Logo.objects.all()
serializer_class = LogoSerializer
permission_classes = (IsAuthenticated,)
def list(self,request):
if request.user:
qs = Object.objects.all()
return Response(MySerializer(qs, many=True, context={'request': request}).data)
Comments
Post a Comment