Python 如何在Django Rest框架中重命名ForeignKey集字段

Python 如何在Django Rest框架中重命名ForeignKey集字段,python,django,django-rest-framework,Python,Django,Django Rest Framework,我正在使用Django Rest框架序列化外键集,我有以下模型: class Transaction(models.Model): ... class TransactionStatus(models.Model): transaction = models.ForeignKey(Transaction) ... 我对这两种模型都有一个序列化程序,其中一个如下所示: class TransactionSerializer(serializers.ModelSeriali

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

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')

我想在这里有一个事务状态列表,来自反向引用的_setqueryset。。。但是在API中,事务集似乎是一个非常尴尬的名称。

经过一次快速的实验,我发现这会起作用:

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

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

现在我有一个状态列表,通过外键链接,名称很好…

注意
source
django模型中
字段
的原始名称,相关序列化程序声明的变量(在本例中为“changes”)是重命名字段的最终名称。非常感谢您的回答,发现它让我很难受