24 lines
666 B
Python
24 lines
666 B
Python
from rest_framework import serializers
|
|
|
|
from .models import Atoll, Island
|
|
|
|
|
|
class IslandSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Island
|
|
fields = ["id", "name", "atoll"]
|
|
|
|
|
|
class AtollSerializer(serializers.ModelSerializer):
|
|
"""Atolls with their islands nested - the registration form needs both."""
|
|
|
|
islands = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = Atoll
|
|
fields = ["id", "name", "code", "islands"]
|
|
|
|
def get_islands(self, obj) -> list[dict]:
|
|
islands = [island for island in obj.islands.all() if island.is_active]
|
|
return IslandSerializer(islands, many=True).data
|