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

posted @   文质彬彬赵其辉  阅读(509)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示