使用Django restDjango的REST:嵌套的對象添加上創建(POST)不只是更新(PUT)
下面是我怎麼了我的serializer.py。
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = ('id', 'name', 'active', 'type')
類型是flatview
我後又改之以「型」是嵌套像這樣每個配置文件...
class TypeSerializer(serializers.ModelSerializer):
class Meta:
model = Type
fields = ('id', 'name', 'active')
class ProfileSerializer(serializers.ModelSerializer):
type = TypeSerializer()
class Meta:
model = Profile
fields = ('id', 'name', 'active', 'type'')
現在這個完美的作品,但我可以現在只在配置文件中更新「類型」,現在只讀。
如何在創建新配置文件時添加類型並仍保留此嵌套視圖?
我希望我已經解釋清楚。
UPDATE:
好吧,我剛剛看了這樣的:
注:嵌套的序列化只適用於只讀 表示,因爲有在那裏他們將有模棱兩可或 案件如果在更新實例時使用了非顯而易見的行爲。對於讀寫 表示法,您應始終使用平面表示法,方法是使用 之一的RelatedField子類。
所以這是有道理的。所以我改成了....
type = serializers.PrimaryKeyRelatedField()
這使它回到POST和工作,但它是一個恥辱,所以它更有意義的我不能代表ID爲「類型」和名稱最終用戶?
我發現SlugRelatedField允許我現在從ID更改爲有意義的像場,但多數民衆贊成在標題或名稱使用平面不嵌套。我會嵌套重試,看看覆蓋是否可以工作。 – jason 2013-02-20 11:53:38
你能解釋一下,我們如何驗證這裏的其他領域? – CrazyGeek 2015-02-03 12:39:26