我有一个没有现场“测试”的模型。我在运行时分配这个字段:
ability = Ability.objects.first()
ability.test = 'TEST!!'我还有一个浆纱机:
class AbilitySerializer(serializers.ModelSerializer):
class Meta:
model = Ability
fields = ('name', 'test',)当我使用它时:
return Response(AbilitySerializer(ability).data)我搞错了:
Field Field name `test` is not valid for model `Ability`.编辑:当我将对象数组传递给序列化程序(使用many=True)时,我仍然面临这个问题。当我通过一个实例时,就可以了。
为什么以及如何修复它?
发布于 2015-08-21 15:16:59
正如Ajay所指出的,必须明确声明非模型字段/方法/属性:
class AbilitySerializer(serializers.ModelSerializer):
# read_only since test is not a model field
test = serializers.CharField(read_only=True)
class Meta:
model = Ability
fields = ('name', 'test',)此外,如果您不总是提供test,请考虑:
test = serializers.CharField(required=False, read_only=True)https://stackoverflow.com/questions/32143149
复制相似问题