I have three models:
class DistinctAlert(models.Model):
entities = models.ManyToManyField(to='Entity', db_index=True, through='EntityToAlertMap')
class Entity(models.Model):
entity_instance = models.ManyToManyField(EntityInstance)
class EntityToAlertMap(models.Model):
entity = models.ForeignKey(Entity, on_delete=models.CASCADE)
distinct_alert = models.ForeignKey(DistinctAlert, on_delete=models.CASCADE)
entity_alert_relationship_label = models.ForeignKey(EntityAlertRelationshipLabel, on_delete=models.CASCADE,
null=True)
Disregarding the extra fields DistinctAlert
and Entity
has, this is what my serializer looks like:
class EntitySerializer(serializers.ModelSerializer):
entity_instance = EntityInstanceSerializer(many=True)
class Meta:
model = Entity
fields = ('id', 'entity_instance')
class EntityInstanceSerializer(serializers.ModelSerializer):
entity_type = EntityTypeSerializer()
class Meta:
model = EntityInstance
fields = ('label', 'entity_type')
class DistinctAlertSerializer(serializers.ModelSerializer):
entities = EntitySerializer(many=True)
class Meta:
model = DistinctAlert
#TODO how do I serialize custom mapping?
fields = ('id', 'entities')
My problem is, with this, my api will return me just the entity, and it misses out the entity_alert_relationship
field that's part of the EntityToAlertMap
that I'm using to map entities to distinct alerts in a manytomany field. My question is, how can I serialize the DistinctAlert
while maintaining the entity/relationship field