ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

raise NotImplementedError('`create()` must be implemented.')报错解决

2022-06-16 02:00:08  阅读:177  来源: 互联网

标签:序列化 raise create instance 报错 date validated data


小报错不用慌

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有