3
にカスタム多数でモデルをシリアライズ:Djangoは、私は三つのモデル持っている多くのマッピング
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)
は、余分なフィールドDistinctAlert
を無視してEntity
をしている、これは私のシリアライザは、次のようになります。
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')
私の問題それで、私のAPIは私だけのエンティティを返すでしょうし、manytomanyフィールド内の別個のアラートにエンティティをマッピングするために使用しているEntityToAlertMap
の一部であるentity_alert_relationship
フィールドを逃してしまいます。私の質問は、私はその後EntityToAlertMap
class EntityToAlertMap(serializers.ModelSerializer):
class Meta:
model = EntityToAlertMap
fields = ('entity', 'distinct_alert', 'entity_alert_relationship_label')
のためのエンティティ/関係フィールドを維持しながら、DistinctAlert
この質問を見てください:http://stackoverflow.com/questions/17256724/include-intermediary-through-model-in-responses-in-django-rest-framework受け入れられた答えはあなたが探しているものです。 – AKS
上記のコメントの投稿が回答を見つけるのに役立たなかったか? – AKS