Files
game-cards-poker-design/backend/apps/projects/serializers.py

40 lines
1.1 KiB
Python
Raw Normal View History

from rest_framework import serializers
from django.conf import settings
from .models import Project, Asset, CardLayer
class ProjectSerializer(serializers.ModelSerializer):
class Meta:
model = Project
fields = '__all__'
class AssetSerializer(serializers.ModelSerializer):
file_url = serializers.SerializerMethodField()
class Meta:
model = Asset
fields = '__all__'
def get_file_url(self, obj):
if obj.file_path:
request = self.context.get('request')
if request:
return request.build_absolute_uri(f'{settings.MEDIA_URL}{obj.file_path}')
return f'{settings.MEDIA_URL}{obj.file_path}'
return None
class CardLayerSerializer(serializers.ModelSerializer):
class Meta:
model = CardLayer
fields = '__all__'
class ProjectDetailSerializer(serializers.ModelSerializer):
assets = AssetSerializer(many=True, read_only=True)
layers = CardLayerSerializer(many=True, read_only=True)
class Meta:
model = Project
fields = '__all__'