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