some improvements
This commit is contained in:
@@ -153,6 +153,8 @@ class ImagesSerializer(serializers.ModelSerializer):
|
||||
|
||||
class ContentImageSerializer(serializers.ModelSerializer):
|
||||
"""Serializer for individual image in grouped content images"""
|
||||
image_url = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Images
|
||||
fields = [
|
||||
@@ -166,6 +168,24 @@ class ContentImageSerializer(serializers.ModelSerializer):
|
||||
'created_at',
|
||||
'updated_at',
|
||||
]
|
||||
|
||||
def get_image_url(self, obj):
|
||||
"""
|
||||
Return proper HTTP URL for image.
|
||||
Priority: If image_path exists, return file endpoint URL, otherwise return image_url (API URL).
|
||||
"""
|
||||
if obj.image_path:
|
||||
# Return file endpoint URL for locally saved images
|
||||
request = self.context.get('request')
|
||||
if request:
|
||||
# Build absolute URL for file endpoint
|
||||
file_url = request.build_absolute_uri(f'/api/v1/writer/images/{obj.id}/file/')
|
||||
return file_url
|
||||
else:
|
||||
# Fallback: return relative URL if no request context
|
||||
return f'/api/v1/writer/images/{obj.id}/file/'
|
||||
# Fallback to original image_url (API URL) if no local path
|
||||
return obj.image_url
|
||||
|
||||
|
||||
class ContentImagesGroupSerializer(serializers.Serializer):
|
||||
|
||||
Reference in New Issue
Block a user