| 3821 | |
| 3822 | |
| 3823 | class PokemonFormDetailSerializer(serializers.ModelSerializer): |
| 3824 | pokemon = PokemonSummarySerializer() |
| 3825 | version_group = VersionGroupSummarySerializer() |
| 3826 | sprites = serializers.SerializerMethodField("get_pokemon_form_sprites") |
| 3827 | form_names = serializers.SerializerMethodField("get_pokemon_form_names") |
| 3828 | names = serializers.SerializerMethodField("get_pokemon_form_pokemon_names") |
| 3829 | types = serializers.SerializerMethodField("get_pokemon_form_types") |
| 3830 | |
| 3831 | class Meta: |
| 3832 | model = PokemonForm |
| 3833 | fields = ( |
| 3834 | "id", |
| 3835 | "name", |
| 3836 | "order", |
| 3837 | "form_order", |
| 3838 | "is_default", |
| 3839 | "is_battle_only", |
| 3840 | "is_mega", |
| 3841 | "form_name", |
| 3842 | "pokemon", |
| 3843 | "sprites", |
| 3844 | "version_group", |
| 3845 | "form_names", |
| 3846 | "names", |
| 3847 | "types", |
| 3848 | ) |
| 3849 | |
| 3850 | @extend_schema_field( |
| 3851 | field={ |
| 3852 | "type": "array", |
| 3853 | "items": { |
| 3854 | "type": "object", |
| 3855 | "required": ["language", "name"], |
| 3856 | "properties": { |
| 3857 | "language": { |
| 3858 | "type": "object", |
| 3859 | "required": ["name", "url"], |
| 3860 | "properties": { |
| 3861 | "name": {"type": "string", "examples": ["en"]}, |
| 3862 | "url": { |
| 3863 | "type": "string", |
| 3864 | "format": "uri", |
| 3865 | "examples": ["https://pokeapi.co/api/v2/language/9/"], |
| 3866 | }, |
| 3867 | }, |
| 3868 | }, |
| 3869 | "name": {"type": "string", "examples": ["Plant Cloak"]}, |
| 3870 | }, |
| 3871 | }, |
| 3872 | } |
| 3873 | ) |
| 3874 | def get_pokemon_form_names(self, obj): |
| 3875 | form_results = PokemonFormName.objects.filter( |
| 3876 | pokemon_form=obj, name__regex=".+" |
| 3877 | ) |
| 3878 | form_serializer = PokemonFormNameSerializer( |
| 3879 | form_results, many=True, context=self.context |
| 3880 | ) |
nothing calls this directly
no test coverage detected