2014-08-30 73 views
5

我采用序列化Django的REST框架外键设置,我有以下型号:如何重命名ForeignKey的设置字段在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') 

我想在这里有交易的列表,从引用_set查询集回状态......但transaction_set只是似乎很别扭的名字在API为..

回答

9

快速运行实验我发现,这将这样的伎俩后:

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

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

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

+1

作为一个说明'source'是'django模型'中'field'的原始名称,并且相关序列化器声明的变量(在本例中为'changes')是重命名字段的最终名称。 – 2015-08-14 17:22:54

+0

非常感谢你的回答,发现它正在杀死我 – Dakusan 2016-02-17 14:36:03

相关问题