当前位置: 首页 > 面试题库 >

Django:将模型对象的整个集合转换为单个字典

李谦
2023-03-14
问题内容

如果你是从Google来这里寻找模型的人,请跳过我的问题,然后跳到第一个答案。我的问题只会使你感到困惑。

在Django中,有没有一种很好的方法可以将整个模型对象集合到一个字典中?我的意思是,像这样:

class DictModel(models.Model):
    key = models.CharField(20)
    value = models.CharField(200)

DictModel.objects.all().to_dict()

…结果是字典,键/值对由模型中的记录组成?还有其他人认为这对他们有用吗?

谢谢。 我只想添加的

更新
是,我的最终目标是能够在模板内进行简单的变量查找。就像是:

{{ DictModel.exampleKey }}

结果为DictModel.objects.get(key__exact = exampleKey).value

总体而言,你们对你的所有回复都非常有帮助,并且处理方式有多么不同,真的让我感到惊讶。非常感谢。

如果你使用的是Google的“ django model_to_dict”,那么此问题是最高的结果,考虑到它解决了与我所要求的问题不同的问题,因此这实际上非常糟糕。

我想要的是能够将查询集中的所有实例映射到具有指定模型字段作为键的单个字典中。
另一方面,model_to_dict将单个模型实例转换为字典。

现在,我当时的需求相当具体,并且可能极为罕见(我什至不记得我需要它的项目,或者为什么)。因此,如果任何人寻找有关model_to_dict的信息都会发现我的问题真正有用,我会感到非常惊讶。抱歉。

model_to_dict似乎是比我更常用的用法。


问题答案:


你还可以依靠已经编写的django代码;)。

from django.forms.models import model_to_dict
model_to_dict(instance, fields=[], exclude=[])

 类似资料:
  • 问题内容: 如何将Django模型对象及其所有字段转换为字典?理想情况下,所有内容都包含带有的外键和字段。 让我详细说明。假设我有一个类似以下的Django模型: 在终端中,我已执行以下操作: 我想将其转换为以下字典: 问题答案: 有多种方法可以将实例转换为字典,并具有不同程度的转角案例处理和接近所需结果的程度。 1。 instance.dict 哪个返回 到目前为止,这是最简单的方法,但是缺少,

  • 问题内容: 如果我运行,Laravel会执行以下烦人的事情,即向集合中的每个模型添加键,如下所示: 我如何摆脱“ 4”和“ 7”,所以它是我的对象的数组? 我运行的代码是: 问题答案: 问题在于该方法不会为基础集合数组重新设置密钥。因此,Collection仍表示一个数组,只是您的数组看起来像这样: 尽管这在PHP中是一个非常有效的数组,但在JSON中却不是一个合适的数组。由于无法将其表示为JSO

  • 如何将一个django模型对象转换为一个包含所有字段的判决?所有理想情况下包括外键和字段可编辑=False。 让我详细说明一下。假设我有一个django模型,如下所示: 在终端中,我完成了以下工作: 我想将其转换为以下词典: 回答不满意的问题: Django:将整个模型对象集转换为单个字典 如何将Django模型对象转换为字典,并且仍然保留它们的外键?

  • 问题内容: 我正在尝试使用Django中的ValuesQuerySet功能将查询返回的字段数限制为仅需要的字段数。我想将此数据集序列化为JSON对象。但是,Django不断抛出错误。下面包含了我的代码和收到的错误: 错误: 谢谢 ! 问题答案: 尝试使用QuerySet 通过方法对值列表中的字段进行子集设置:

  • 问题内容: 我可以仅在单个模型上而不是整个应用程序中在Django中执行,如果可以,如何执行? 对于一个应用程序,它将是: 但是,我希望转储某些特定的模型,例如“ myapp.mymodel”。原因是,在我不希望转储的同一应用程序中,我有300万条巨大的记录数据集。 问题答案: 从1.1版及更高版本开始,Django dumpdata管理命令允许你从单个表中转储数据: 你还可以在命令行上分离多个应

  • 我正在写一个库在Java,我需要转换(地图)一个模型到另一个,反之亦然。我所做的是实现了一个包含两个泛型类型的抽象转换器类,包含convertTo和convertFrom方法,并从它扩展了我的转换器。 但是对于特定的实现,我可能还需要其他对象来进行转换,我不知道什么是实现这些东西的最佳实践。我想过适配器和门面,但他们似乎不符合我的要求。有没有一个设计模式我可以用来做这个?提前谢谢你。