如何在Django Rest Framework中重命名ForeignKey set字段

Vis*_*oru 5 python django django-rest-framework

我正在使用Django Rest Framework序列化外键集,我有以下模型:

class Transaction(models.Model):
    ...
class TransactionStatus(models.Model):
    transaction = models.ForeignKey(Transaction)
    ...
Run Code Online (Sandbox Code Playgroud)

我有这两个模型的序列化器,其中一个看起来像这样:

class TransactionSerializer(serializers.ModelSerializer):
    transactionstatus_set = TransactionStatusSerializer(many=True, read_only=True)

    class Meta:
        model = Transaction
        depth = 1
        fields = ('id', 'transactionstatus_set')
Run Code Online (Sandbox Code Playgroud)

我想在这里有一个来自后面引用的_set queryset的事务状态列表...但是,事务处理集在API中看起来似乎很尴尬.

Vis*_*oru 9

经过快速的实验,我发现这将解决问题:

class TransactionSerializer(serializers.ModelSerializer):
    changes = TransactionStatusSerializer(many=True, read_only=True, source='transactionstatus_set')

    class Meta:
        model = Transaction
        depth = 1
        fields = ('id', 'changes')
Run Code Online (Sandbox Code Playgroud)

现在我有一个由外键链接的状态列表,名字很好......