| 4128 | |
| 4129 | |
| 4130 | class 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={ |
nothing calls this directly
no test coverage detected