Django通过模型查询将结果转成字典

问题描述

我使用 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]

你可能感兴趣的:(Django,django,sqlite,python)