如何手动向SafeDeleteQuerySet插入自定义数据后传给序列化器?
能否向SafeDeleteQuerySet插入自定义字典?
不可行。SafeDeleteQuerySet继承自Django的QuerySet,它是绑定数据库查询的惰性结果集,所有操作最终都会转化为SQL语句执行,你无法直接向其中插入不属于数据库查询结果的自定义字典。
解决方案
把查询集转换成普通Python列表,再添加你的自定义字典,之后再传给序列化器:
# 将查询集转为普通列表 results_list = list(results) # 添加自定义字典到列表(append是追加到末尾,insert可指定插入位置) results_list.append({'label':'myuser', 'value':2,'dcount':23}) # 传给序列化器 serializer = s.SearchChoiceSerializer(instance=results_list, many=True)
这样处理后,列表既包含了数据库查询的结果,也加入了你需要的自定义数据,序列化器可以正常处理这个列表。
内容的提问来源于stack exchange,提问作者whitebear
相关产品推荐
相关产品推荐

