Closed
Description
I have this model:
class MatchTimelineEvent(models.Model):
timeline_event_id = models.AutoField(primary_key=True)
team = models.CharField(max_length=50, null=True)
class Meta:
abstract = True
class ObjectiveEvent(MatchTimelineEvent):
target = models.CharField(max_length=50)
And I created this serializer for it:
class MatchTimelineEventSerializer(serializers.ModelSerializer):
class Meta:
model = MatchTimelineEvent
fields = '__all__'
class ObjectiveEventSerializer(serializers.ModelSerializer):
team = serializers.SerializerMethodField()
class Meta:
model = ObjectiveEvent
fields = ['team']
def get_team(self, instance):
team = str(instance.team).strip()
if team == '0' or team == 'Team0':
return 'Amber'
elif team == '1' or team == 'Team1':
return 'Sapphire'
else:
return team
Despite me overwriting the way the serializer returns team
, this serializer ALWAYS returned null
for team
. Even upon redefining the serializer field to teamName
, the serializer still returns team
as null
, despite the field not being present anymore.
class ObjectiveEventSerializer(serializers.ModelSerializer):
teamName = serializers.SerializerMethodField()
class Meta:
model = ObjectiveEvent
fields = ['teamName']
def get_teamName(self, instance):
team = str(instance.team).strip()
if team == '0' or team == 'Team0':
return 'Amber'
elif team == '1' or team == 'Team1':
return 'Sapphire'
else:
return team
Serialized:
{
"teamName": "Sapphire",
"team": null
},
Metadata
Metadata
Assignees
Labels
No labels