raise NotImplementedError('`create()` must be implemented.')报错解决
作者:互联网
小报错不用慌
raise NotImplementedError('create()
must be implemented.')
这个报错就是你没有重写create这个方法
这个问题是由于我在Django序列化保存数据是报出的异常
原因是:create方法没有被实现
save()/update()方法源码部分
def update(self, instance, validated_data):
raise NotImplementedError('`update()` must be implemented.')
def create(self, validated_data):
raise NotImplementedError('`create()` must be implemented.')
解决方法也很简单,在序列化模型类中去实现create()方法即可
在对应的序列化模型类下实现create()方法
def create(self, validated_data):
"""
:param validated_data: 校验之后的数据
**validated_data:把字典进行拆包
:return:
"""
# 新增一本图书
book = BookInfo.objects.create(**validated_data)
return book
# 在对应的序列化模型类下实现update()方法
# 具体实现方法可以不尽相同,这里只是提供一种思路,仅供参考
def update(self, instance, validated_data):
"""
:param instance: 创建序列化器时,传入的实例对象
:param validated_data: 校验之后的数据
"""
# 获取btitle和bpub_date
btitle = validated_data.get('btitle')
bpub_date = validated_data.get('bpub_date')
# 更新instance
instance.btitle = btitle
instance.bpub_date = bpub_date
instance.save()
# 返回instance
return instance
标签:序列化,raise,create,instance,报错,date,validated,data 来源: https://www.cnblogs.com/ister/p/16380541.html