2014-08-30 70 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

相關問題