2016-09-29 14 views
1

我怎麼會這樣做是爲了顯示ForeignKey的protected_area的名稱字段?:顯示一個相關領域的屬性

class NotificationReceiverSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = NotificationReceiver 
     fields = ('pk','cellphone', 'protected_area__name') 

所以,現在它只是顯示爲PK,符合市場預期:

protected_area":1 

回答

2

試着這麼做這個。

class NotificationReceiverSerializer(serializers.ModelSerializer): 
    proteced_area = serializers.ReadOnlyField(source="protected_area.name") 

    class Meta: 
     model = NotificationReceiver 
     fields = ('pk','cellphone', 'protected_area') 

這會將protected_area名稱顯示爲只讀字段。另外,

class NotificationReceiverSerializer(serializers.ModelSerializer): 
    proteced_area = ProtectedAreaSerializer(read_only=True, many=True) 

    class Meta: 
     model = NotificationReceiver 
     fields = ('pk','cellphone', 'protected_area') 

顯示在相關模型中的所有字段

+0

我不能傳遞serializers.ReadOnlyField()這事 – Harry

+0

protected_area = serializers.ReadOnlyField( 'protected_area.name') 類型錯誤:__init __()需要1個參數(給出2個) – Harry

+0

您的DRF版本是什麼?我認爲我們可能有不同的版本 – e4c5