使用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