【发布时间】:2016-12-28 08:33:23
【问题描述】:
完整的错误是:
The `.update()` method does not support writable nestedfields by default.
Write an explicit `.update()` method for serializer `rest_framework.serializers.BankOutEntrySerializer2`, or set `read_only=True` on nested serializer fields.
ModelViewSet 和 ModelSerializer 中都存在更新方法。两者都通过 mixin 继承了这个功能。我正在使用type 动态生成这些类。
看起来像这样:
ViewSet = type(
Model.__name__+"ViewSet",
(viewsets.ModelViewSet, DefaultViewSetBehaviour),
{
'serializer_class': Serializer,
'queryset': Model.objects.all()
}
)
序列化程序类也以类似的方式动态创建,并递归生成适当的类,包括通用更新功能。
这可能是什么原因造成的?永远无法达到我的更新方法。
【问题讨论】: