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

8 投票
1 回答
3546 浏览
提问于 2025-04-18 22:10

我正在使用Django Rest Framework来处理外键集合的序列化,下面是我用到的模型:

class Transaction(models.Model):
    ...
class TransactionStatus(models.Model):
    transaction = models.ForeignKey(Transaction)
    ...

我为这两个模型各自创建了一个序列化器,其中一个看起来是这样的:

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

    class Meta:
        model = Transaction
        depth = 1
        fields = ('id', 'transactionstatus_set')

我想在这里显示一个来自反向引用的交易状态列表... 但是在API中,transaction_set这个名字听起来实在是太奇怪了...

1 个回答

12

经过简单的实验,我发现这个方法可以解决问题:

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

    class Meta:
        model = Transaction
        depth = 1
        fields = ('id', 'changes')

现在我有了一个状态列表,这些状态通过外键关联,并且名字也很好...

撰写回答