1010from  .damagetype  import  DamageTypeSerializer 
1111from  .condition  import  ConditionSerializer 
1212from  .document  import  DocumentSummarySerializer 
13- from  .language  import  LanguageSerializer 
13+ from  .language  import  LanguageSummarySerializer 
1414from  .environment  import  EnvironmentSerializer 
1515from  .size  import  SizeSerializer 
1616from  drf_spectacular .utils  import  extend_schema_field , inline_serializer 
@@ -56,6 +56,14 @@ class Meta:
5656        model  =  models .CreatureTrait 
5757        fields  =  '__all__' 
5858
59+ class  CreatureLanguageSerializer (GameContentSerializer ):
60+     as_string  =  serializers .CharField (source = "languages_desc" )
61+     data  =  LanguageSummarySerializer (source = "languages" , many = True )
62+ 
63+     class  Meta :
64+         model  =  models .Creature 
65+         fields  =  ['as_string' , 'data' ]
66+ 
5967class  CreatureSerializer (GameContentSerializer ):
6068    '''The serializer for the Creature object.''' 
6169
@@ -79,7 +87,7 @@ class CreatureSerializer(GameContentSerializer):
7987    document  =  DocumentSummarySerializer ()
8088    type  =  CreatureTypeSerializer ()
8189    size  =  SizeSerializer ()
82-     languages  =  LanguageSerializer ( many = True )
90+     languages  =  CreatureLanguageSerializer ( source = '*' )
8391    environments  =  EnvironmentSerializer (many = True )
8492    initiative_bonus  =  serializers .SerializerMethodField ()
8593
0 commit comments