我无法对此验证错误进行排序。
我的地址模型具有必填字段' locality'。
class Address(models.Model):
....
locality = models.CharField(max_length=20,unique=True)
....
class AddressSerializer(serializers.ModelSerializer):
class Meta:
model = Address
fields = ['house_number', 'street', 'area', 'locality', 'address_of']
class CustomerSerializer(serializers.ModelSerializer):
ship_address = AddressSerializer(required=False)
class Meta:
model = Customer
在地址模型中,地点是必填字段。
我想让AddressSerializer在CustomerSerializer中是可选的。 尽管有所需的= False标志,但我收到了验证错误:
"ship_address": {
"locality": [
"This field may not be blank."
]
}
**请注意:这只是一个代表性的,而不是我的模型和序列化器的完全复制品,因此忽略了任何小错误。
答案 0 :(得分:0)
export const asynchronous = data => {
return axios.get(url).then(res => {
return res;
});
}
并修改models.py 您想要选择
的字段中的class CustomerSerializer(serializers.ModelSerializer):
ship_address = AddressSerializer(read_only=True)
答案 1 :(得分:0)
你需要一些特技。在viewsets
中,您确定了有效负载和http方法。并使用不同的Serializer
类处理它们。
答案 2 :(得分:0)
使用嵌套序列化程序时,您遇到的问题与您相同。最后,我想出了一个解决方案,该解决方案添加了read_only
标志,它的工作原理很吸引人。我希望这能解决您的问题。
class Meta:
model = ModelName
fields = ('pk', 'field_1', 'field_2', 'field_3')
extra_kwargs = {
'field_1': {
'required': False,
'read_only': True,
},
}