MCPcopy Create free account
hub / github.com/PokeAPI/pokeapi / PokemonShapeDetailSerializer

Class PokemonShapeDetailSerializer

pokemon_v2/serializers.py:4130–4220  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4128
4129
4130class PokemonShapeDetailSerializer(serializers.ModelSerializer):
4131 names = serializers.SerializerMethodField("get_shape_names")
4132 awesome_names = serializers.SerializerMethodField("get_shape_awesome_names")
4133 pokemon_species = PokemonSpeciesSummarySerializer(
4134 many=True, read_only=True, source="pokemonspecies"
4135 )
4136
4137 class Meta:
4138 model = PokemonShape
4139 fields = ("id", "name", "awesome_names", "names", "pokemon_species")
4140
4141 @extend_schema_field(
4142 field={
4143 "type": "array",
4144 "items": {
4145 "type": "object",
4146 "required": ["url", "name"],
4147 "properties": {
4148 "url": {
4149 "type": "string",
4150 "format": "uri",
4151 "examples": ["https://pokeapi.co/api/v2/language/9/"],
4152 },
4153 "name": {"type": "string", "examples": ["Ball"]},
4154 },
4155 },
4156 }
4157 )
4158 def get_shape_names(self, obj):
4159 results = PokemonShapeName.objects.filter(pokemon_shape_id=obj)
4160 serializer = PokemonShapeNameSerializer(
4161 results, many=True, context=self.context
4162 )
4163 data = serializer.data
4164
4165 for entry in data:
4166 del entry["awesome_name"]
4167
4168 return data
4169
4170 # "awesome_names": [
4171 # {
4172 # "awesome_name": "Pomacé",
4173 # "language": {
4174 # "name": "fr",
4175 # "url": "https://pokeapi.co/api/v2/language/5/"
4176 # }
4177 # },
4178 # {
4179 # "awesome_name": "Pomaceous",
4180 # "language": {
4181 # "name": "en",
4182 # "url": "https://pokeapi.co/api/v2/language/9/"
4183 # }
4184 # }
4185 # ],
4186 @extend_schema_field(
4187 field={

Callers

nothing calls this directly

Tested by

no test coverage detected