mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2026-02-05 02:15:19 -05:00
feat: Migrate image URL access from .url to .public_url across all relevant services and serializers.
This commit is contained in:
@@ -79,7 +79,7 @@ class ParkPhotoOutputSerializer(serializers.ModelSerializer):
|
||||
def get_image_url(self, obj):
|
||||
"""Get the full Cloudflare Images URL."""
|
||||
if obj.image:
|
||||
return obj.image.url
|
||||
return obj.image.public_url
|
||||
return None
|
||||
|
||||
@extend_schema_field(
|
||||
@@ -95,10 +95,10 @@ class ParkPhotoOutputSerializer(serializers.ModelSerializer):
|
||||
|
||||
# Common variants for park photos
|
||||
variants = {
|
||||
"thumbnail": f"{obj.image.url}/thumbnail",
|
||||
"medium": f"{obj.image.url}/medium",
|
||||
"large": f"{obj.image.url}/large",
|
||||
"public": f"{obj.image.url}/public",
|
||||
"thumbnail": f"{obj.image.public_url}/thumbnail",
|
||||
"medium": f"{obj.image.public_url}/medium",
|
||||
"large": f"{obj.image.public_url}/large",
|
||||
"public": f"{obj.image.public_url}/public",
|
||||
}
|
||||
return variants
|
||||
|
||||
@@ -303,14 +303,14 @@ class HybridParkSerializer(serializers.ModelSerializer):
|
||||
def get_banner_image_url(self, obj):
|
||||
"""Get banner image URL."""
|
||||
if obj.banner_image and obj.banner_image.image:
|
||||
return obj.banner_image.image.url
|
||||
return obj.banner_image.image.public_url
|
||||
return None
|
||||
|
||||
@extend_schema_field(serializers.URLField(allow_null=True))
|
||||
def get_card_image_url(self, obj):
|
||||
"""Get card image URL."""
|
||||
if obj.card_image and obj.card_image.image:
|
||||
return obj.card_image.image.url
|
||||
return obj.card_image.image.public_url
|
||||
return None
|
||||
|
||||
@extend_schema_field(serializers.BooleanField())
|
||||
|
||||
@@ -81,7 +81,7 @@ class RidePhotoOutputSerializer(serializers.ModelSerializer):
|
||||
def get_image_url(self, obj):
|
||||
"""Get the full Cloudflare Images URL."""
|
||||
if obj.image:
|
||||
return obj.image.url
|
||||
return obj.image.public_url
|
||||
return None
|
||||
|
||||
@extend_schema_field(
|
||||
@@ -97,10 +97,10 @@ class RidePhotoOutputSerializer(serializers.ModelSerializer):
|
||||
|
||||
# Common variants for ride photos
|
||||
variants = {
|
||||
"thumbnail": f"{obj.image.url}/thumbnail",
|
||||
"medium": f"{obj.image.url}/medium",
|
||||
"large": f"{obj.image.url}/large",
|
||||
"public": f"{obj.image.url}/public",
|
||||
"thumbnail": f"{obj.image.public_url}/thumbnail",
|
||||
"medium": f"{obj.image.public_url}/medium",
|
||||
"large": f"{obj.image.public_url}/large",
|
||||
"public": f"{obj.image.public_url}/public",
|
||||
}
|
||||
return variants
|
||||
|
||||
@@ -481,14 +481,14 @@ class HybridRideSerializer(serializers.ModelSerializer):
|
||||
def get_banner_image_url(self, obj):
|
||||
"""Get banner image URL."""
|
||||
if obj.banner_image and obj.banner_image.image:
|
||||
return obj.banner_image.image.url
|
||||
return obj.banner_image.image.public_url
|
||||
return None
|
||||
|
||||
@extend_schema_field(serializers.URLField(allow_null=True))
|
||||
def get_card_image_url(self, obj):
|
||||
"""Get card image URL."""
|
||||
if obj.card_image and obj.card_image.image:
|
||||
return obj.card_image.image.url
|
||||
return obj.card_image.image.public_url
|
||||
return None
|
||||
|
||||
# Computed property
|
||||
|
||||
@@ -59,7 +59,7 @@ class RideModelPhotoOutputSerializer(serializers.Serializer):
|
||||
def get_image_url(self, obj):
|
||||
"""Get the image URL."""
|
||||
if obj.image:
|
||||
return obj.image.url
|
||||
return obj.image.public_url
|
||||
return None
|
||||
|
||||
|
||||
|
||||
@@ -265,13 +265,13 @@ class RideDetailOutputSerializer(serializers.Serializer):
|
||||
return [
|
||||
{
|
||||
"id": photo.id,
|
||||
"image_url": photo.image.url if photo.image else None,
|
||||
"image_url": photo.image.public_url if photo.image else None,
|
||||
"image_variants": (
|
||||
{
|
||||
"thumbnail": (f"{photo.image.url}/thumbnail" if photo.image else None),
|
||||
"medium": f"{photo.image.url}/medium" if photo.image else None,
|
||||
"large": f"{photo.image.url}/large" if photo.image else None,
|
||||
"public": f"{photo.image.url}/public" if photo.image else None,
|
||||
"thumbnail": (f"{photo.image.public_url}/thumbnail" if photo.image else None),
|
||||
"medium": f"{photo.image.public_url}/medium" if photo.image else None,
|
||||
"large": f"{photo.image.public_url}/large" if photo.image else None,
|
||||
"public": f"{photo.image.public_url}/public" if photo.image else None,
|
||||
}
|
||||
if photo.image
|
||||
else {}
|
||||
@@ -295,12 +295,12 @@ class RideDetailOutputSerializer(serializers.Serializer):
|
||||
if photo and photo.image:
|
||||
return {
|
||||
"id": photo.id,
|
||||
"image_url": photo.image.url,
|
||||
"image_url": photo.image.public_url,
|
||||
"image_variants": {
|
||||
"thumbnail": f"{photo.image.url}/thumbnail",
|
||||
"medium": f"{photo.image.url}/medium",
|
||||
"large": f"{photo.image.url}/large",
|
||||
"public": f"{photo.image.url}/public",
|
||||
"thumbnail": f"{photo.image.public_url}/thumbnail",
|
||||
"medium": f"{photo.image.public_url}/medium",
|
||||
"large": f"{photo.image.public_url}/large",
|
||||
"public": f"{photo.image.public_url}/public",
|
||||
},
|
||||
"caption": photo.caption,
|
||||
"alt_text": photo.alt_text,
|
||||
@@ -318,12 +318,12 @@ class RideDetailOutputSerializer(serializers.Serializer):
|
||||
if obj.banner_image and obj.banner_image.image:
|
||||
return {
|
||||
"id": obj.banner_image.id,
|
||||
"image_url": obj.banner_image.image.url,
|
||||
"image_url": obj.banner_image.image.public_url,
|
||||
"image_variants": {
|
||||
"thumbnail": f"{obj.banner_image.image.url}/thumbnail",
|
||||
"medium": f"{obj.banner_image.image.url}/medium",
|
||||
"large": f"{obj.banner_image.image.url}/large",
|
||||
"public": f"{obj.banner_image.image.url}/public",
|
||||
"thumbnail": f"{obj.banner_image.image.public_url}/thumbnail",
|
||||
"medium": f"{obj.banner_image.image.public_url}/medium",
|
||||
"large": f"{obj.banner_image.image.public_url}/large",
|
||||
"public": f"{obj.banner_image.image.public_url}/public",
|
||||
},
|
||||
"caption": obj.banner_image.caption,
|
||||
"alt_text": obj.banner_image.alt_text,
|
||||
@@ -343,12 +343,12 @@ class RideDetailOutputSerializer(serializers.Serializer):
|
||||
if latest_photo and latest_photo.image:
|
||||
return {
|
||||
"id": latest_photo.id,
|
||||
"image_url": latest_photo.image.url,
|
||||
"image_url": latest_photo.image.public_url,
|
||||
"image_variants": {
|
||||
"thumbnail": f"{latest_photo.image.url}/thumbnail",
|
||||
"medium": f"{latest_photo.image.url}/medium",
|
||||
"large": f"{latest_photo.image.url}/large",
|
||||
"public": f"{latest_photo.image.url}/public",
|
||||
"thumbnail": f"{latest_photo.image.public_url}/thumbnail",
|
||||
"medium": f"{latest_photo.image.public_url}/medium",
|
||||
"large": f"{latest_photo.image.public_url}/large",
|
||||
"public": f"{latest_photo.image.public_url}/public",
|
||||
},
|
||||
"caption": latest_photo.caption,
|
||||
"alt_text": latest_photo.alt_text,
|
||||
@@ -367,12 +367,12 @@ class RideDetailOutputSerializer(serializers.Serializer):
|
||||
if obj.card_image and obj.card_image.image:
|
||||
return {
|
||||
"id": obj.card_image.id,
|
||||
"image_url": obj.card_image.image.url,
|
||||
"image_url": obj.card_image.image.public_url,
|
||||
"image_variants": {
|
||||
"thumbnail": f"{obj.card_image.image.url}/thumbnail",
|
||||
"medium": f"{obj.card_image.image.url}/medium",
|
||||
"large": f"{obj.card_image.image.url}/large",
|
||||
"public": f"{obj.card_image.image.url}/public",
|
||||
"thumbnail": f"{obj.card_image.image.public_url}/thumbnail",
|
||||
"medium": f"{obj.card_image.image.public_url}/medium",
|
||||
"large": f"{obj.card_image.image.public_url}/large",
|
||||
"public": f"{obj.card_image.image.public_url}/public",
|
||||
},
|
||||
"caption": obj.card_image.caption,
|
||||
"alt_text": obj.card_image.alt_text,
|
||||
@@ -392,12 +392,12 @@ class RideDetailOutputSerializer(serializers.Serializer):
|
||||
if latest_photo and latest_photo.image:
|
||||
return {
|
||||
"id": latest_photo.id,
|
||||
"image_url": latest_photo.image.url,
|
||||
"image_url": latest_photo.image.public_url,
|
||||
"image_variants": {
|
||||
"thumbnail": f"{latest_photo.image.url}/thumbnail",
|
||||
"medium": f"{latest_photo.image.url}/medium",
|
||||
"large": f"{latest_photo.image.url}/large",
|
||||
"public": f"{latest_photo.image.url}/public",
|
||||
"thumbnail": f"{latest_photo.image.public_url}/thumbnail",
|
||||
"medium": f"{latest_photo.image.public_url}/medium",
|
||||
"large": f"{latest_photo.image.public_url}/large",
|
||||
"public": f"{latest_photo.image.public_url}/public",
|
||||
},
|
||||
"caption": latest_photo.caption,
|
||||
"alt_text": latest_photo.alt_text,
|
||||
|
||||
@@ -199,7 +199,7 @@ class TrendingService:
|
||||
# Get card image URL
|
||||
card_image_url = ""
|
||||
if park.card_image and hasattr(park.card_image, "image"):
|
||||
card_image_url = park.card_image.image.url if park.card_image.image else ""
|
||||
card_image_url = park.card_image.image.public_url if park.card_image.image else ""
|
||||
|
||||
# Get primary company (operator)
|
||||
primary_company = park.operator.name if park.operator else ""
|
||||
@@ -247,7 +247,7 @@ class TrendingService:
|
||||
# Get card image URL
|
||||
card_image_url = ""
|
||||
if ride.card_image and hasattr(ride.card_image, "image"):
|
||||
card_image_url = ride.card_image.image.url if ride.card_image.image else ""
|
||||
card_image_url = ride.card_image.image.public_url if ride.card_image.image else ""
|
||||
|
||||
trending_rides.append(
|
||||
{
|
||||
@@ -450,7 +450,7 @@ class TrendingService:
|
||||
# Get card image URL
|
||||
card_image_url = ""
|
||||
if park.card_image and hasattr(park.card_image, "image"):
|
||||
card_image_url = park.card_image.image.url if park.card_image.image else ""
|
||||
card_image_url = park.card_image.image.public_url if park.card_image.image else ""
|
||||
|
||||
# Get primary company (operator)
|
||||
primary_company = park.operator.name if park.operator else ""
|
||||
@@ -506,7 +506,7 @@ class TrendingService:
|
||||
# Get card image URL
|
||||
card_image_url = ""
|
||||
if ride.card_image and hasattr(ride.card_image, "image"):
|
||||
card_image_url = ride.card_image.image.url if ride.card_image.image else ""
|
||||
card_image_url = ride.card_image.image.public_url if ride.card_image.image else ""
|
||||
|
||||
results.append(
|
||||
{
|
||||
|
||||
@@ -142,7 +142,7 @@ def get_og_image(
|
||||
try:
|
||||
first_photo = instance.photos.first()
|
||||
if first_photo and hasattr(first_photo, "image"):
|
||||
return urljoin(base_url, first_photo.image.url)
|
||||
return urljoin(base_url, first_photo.image.public_url)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
Reference in New Issue
Block a user