我会尝试简化我的问题:
我有一个模型X
。我还有一个模型Y
,其ForeignKey
字段指向X
。这意味着实际上我可能有Y
属于X
的许多实例(因此一对多关系)。
当我序列化X
时,它不知道指向它的Y
个实例。如何序列化与{I}当前序列化的Y
关联的所有X
个实例?
我是否必须进行某种自定义序列化?还是Django以某种方式支持这个?
答案 0 :(得分:0)
docs在这里提供了一些基本选项,但不包括我认为最干净的选项;你通常不想更改Django Model类的默认值related_name
(因为这违反了开发人员在使用Django时所采用的约定),而且你通常不希望公开related_name
(因为它不是一个直观的API字段名称)。
通过这样做,您可以充分利用这两个方面:
class AlbumSerializer(serializers.ModelSerializer):
tracks = serializers.RelatedField(source='track_set',
many=True,
read_only=True)
class Meta:
fields = ('tracks', ...)