| 4257 | |
| 4258 | |
| 4259 | class PokemonDetailSerializer(serializers.ModelSerializer): |
| 4260 | abilities = serializers.SerializerMethodField("get_pokemon_abilities") |
| 4261 | past_abilities = serializers.SerializerMethodField("get_past_pokemon_abilities") |
| 4262 | game_indices = PokemonGameIndexSerializer( |
| 4263 | many=True, read_only=True, source="pokemongameindex" |
| 4264 | ) |
| 4265 | moves = serializers.SerializerMethodField("get_pokemon_moves") |
| 4266 | species = PokemonSpeciesSummarySerializer(source="pokemon_species") |
| 4267 | stats = PokemonStatSerializer(many=True, read_only=True, source="pokemonstat") |
| 4268 | types = serializers.SerializerMethodField("get_pokemon_types") |
| 4269 | past_types = serializers.SerializerMethodField("get_past_pokemon_types") |
| 4270 | forms = PokemonFormSummarySerializer( |
| 4271 | many=True, read_only=True, source="pokemonform" |
| 4272 | ) |
| 4273 | held_items = serializers.SerializerMethodField("get_pokemon_held_items") |
| 4274 | location_area_encounters = serializers.SerializerMethodField("get_encounters") |
| 4275 | sprites = serializers.SerializerMethodField("get_pokemon_sprites") |
| 4276 | cries = serializers.SerializerMethodField("get_pokemon_cries") |
| 4277 | |
| 4278 | class Meta: |
| 4279 | model = Pokemon |
| 4280 | fields = ( |
| 4281 | "id", |
| 4282 | "name", |
| 4283 | "base_experience", |
| 4284 | "height", |
| 4285 | "is_default", |
| 4286 | "order", |
| 4287 | "weight", |
| 4288 | "abilities", |
| 4289 | "past_abilities", |
| 4290 | "forms", |
| 4291 | "game_indices", |
| 4292 | "held_items", |
| 4293 | "location_area_encounters", |
| 4294 | "moves", |
| 4295 | "species", |
| 4296 | "sprites", |
| 4297 | "cries", |
| 4298 | "stats", |
| 4299 | "types", |
| 4300 | "past_types", |
| 4301 | ) |
| 4302 | |
| 4303 | @extend_schema_field( |
| 4304 | field={ |
| 4305 | "type": "object", |
| 4306 | "properties": { |
| 4307 | "front_default": { |
| 4308 | "type": "string", |
| 4309 | "format": "uri", |
| 4310 | "exmaple": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/1.png", |
| 4311 | } |
| 4312 | }, |
| 4313 | "additionalProperties": { # Stoplight Elements doesn't render this well |
| 4314 | "type": "string", |
| 4315 | "format": "uri", |
| 4316 | "nullable": True, |
no test coverage detected