2014-04-21 24 views
2

我有一個模型,它由兩個ForeignKeys組成。我只對解析ForeignKeys的內容感興趣,所以我使用的是depth變量,它基本上給了我用FK引用的所有表的列。有沒有辦法選擇應該包含哪些列?如何在串行器中使用深度時選擇特定列

class SomeSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = MyAwesomeModel 
     fields = ('id', 'fk_one','fk_two') 
     depth = 1 

回答

6

嘗試使用嵌套序列化器。文檔here

實施例:

class FKOneSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = FKOne 
     fields = ('name', 'id') 

class SomeSerializer(serializers.ModelSerializer): 
    fk_one = FKOneSerializer() 

    class Meta: 
     model = MyAwesomeModel 
     fields = ('id', 'fk_one','fk_two') 

編輯:由Django的REST框架的創建者

類似的答案here。還包括一些相關的註釋,包括嵌套序列化器是隻讀的,您可能需要在序列化程序字段中包含source參數。

相關問題