使用Django Rest Framework创建API时遇类型无法JSON序列化错误
问题原因与解决方案
嘿,我一眼就揪出你代码里的问题啦!你碰到的「Object of type 'type' is not JSON serializable」错误,根源出在User模型的match_price字段定义上。
你看这段模型代码:
match_price = models.IntegerField
这里你忘记给IntegerField加括号了!这就导致你把IntegerField这个类本身(而非它的实例)赋值给了match_price字段。当DRF尝试序列化这个字段时,它没办法把type类型的对象转换成JSON格式,自然就抛出了序列化错误。
修复步骤
把模型里的match_price字段修改为:
# 根据业务需求调整参数,比如必填就加blank=False、null=False match_price = models.IntegerField(blank=True, null=True)
额外小提示
我还注意到你的fb_token字段没设置blank参数,默认是blank=False(必填),如果这个字段不是用户必须提供的,建议显式加上blank=True,避免后续出现不必要的验证错误。
修改完模型后,别忘了执行数据库迁移命令:
python manage.py makemigrations python manage.py migrate
之后重新测试你的API,这个序列化错误应该就彻底消失啦!
内容的提问来源于stack exchange,提问作者Gaurav Parvadiya
相关产品推荐
相关产品推荐

