我使用 Django 模型的 filter 方法去查询数据,查询的结果是一个 queryset ,如何将 queryset 转换成列表、字典的形式呢。
下面我找了几个解决这个问题的方法
1、使用Django的values()方法
Django提供了一个values()方法,可以让你获取模型对象的字典表示。你可以直接对查询集使用这个方法,而不需要自定义to_dict方法。
queryset = Model_Info.objects.filter(status=1).values()
data_dicts = list(queryset)
2、添加to_dict方法到Model_Info模型中
在你的Model_Info模型中添加一个to_dict方法,该方法将模型实例转换为字典。
class Model_Info(models.Model):
# ...其他字段定义...
def to_dict(self):
return {f.name: getattr(self, f.name) for f in self._meta.fields}
查询、转换代码为:
# 获取所有status=1的数据
queryset = Model_Info.objects.filter(status=1)
# 将QuerySet转换为字典列表
data_dicts = [item.to_dict() for item in queryset]