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

如何在Django模型上存储字典?

慕仲渊
2023-03-14
问题内容

我需要在Django模型中存储一些数据。这些数据并不等于模型的所有实例。

最初,我考虑过将模型子类化,但是我试图保持应用程序的灵活性。如果使用子类,则每次需要新的对象时都需要创建一个整个类,这是不好的。我还将最终得到很多子类,仅用于存储一对额外的字段。

我真的觉得词典是最好的方法,但是Django文档中没有关于在Django模型中存储词典的内容(或者我找不到它)。

有什么线索吗?


问题答案:

如果你要查找的是像字典一样的任意数据,则可以使用两级设置,其中一个模型是容器,另一个模型是键值对。你将创建容器的实例,创建每个键值实例,并将一组键值实例与容器实例相关联。就像是:

class Dicty(models.Model):
    name      = models.CharField(max_length=50)

class KeyVal(models.Model):
    container = models.ForeignKey(Dicty, db_index=True)
    key       = models.CharField(max_length=240, db_index=True)
    value     = models.CharField(max_length=240, db_index=True)

它虽然不漂亮,但是可以让你使用数据库访问/搜索字典的内部,而不能使用pickle / serialize解决方案。



 类似资料:
  • 问题内容: 我需要将字典保存在模型字段中。我怎么做? 例如,我有此代码: 我应该为“ bill_products =“写什么,以便从我的产品模型到此帐单保存一些随机产品? 这是账单的模型说明: 以及产品的型号说明: 如果还有什么我要补充的请发表评论。谢谢! 问题答案: 我刚刚发现了django-jsonfield软件包,该软件包 是可重用的Django字段,可让您在模型中存储经过验证的JSON。

  • 问题内容: 当我仅知道字段名称和模型名称(均为纯字符串)时,我试图获取模型内部字段上的类信息。这怎么可能? 我可以动态加载模型: 现在我有一个字段-‘myfield’-如何获取该字段的类? 如果字段是关系字段-如何获取相关字段? 谢谢一群! 问题答案: 您可以使用模型的属性来获取字段对象,并且可以从字段中获取关系以及更多其他信息,例如,考虑一个雇员表,该雇员表具有一个部门表的外键 来自django

  • 问题内容: 我想知道是否可以在Django模型中存储数组? 我问这个问题是因为我需要在一个字段中存储一个数组(例如[1,2,3]),然后能够搜索特定的数组并与之匹配,或者通过它的可能组合来进行匹配。 我当时正在考虑将该数组存储为s中的字符串,然后在需要搜索内容时,将值(通过过滤其他模型获得)与’[‘,’]’和’,’连接在一起,然后使用带有生成字符串。问题在于,我将必须生成每种可能的组合,然后逐个过

  • 类名:\Yurun\Crawler\Module\Processor\Handler\ModelStorageProcessor Bean 名:ModelStorageProcessor 用于在@Processor注解中指定。 注解 @ModelStorage 类名:\Yurun\Crawler\Module\Processor\Annotation\ModelStorage 参数: 名称 描述

  • 首先,我像这样扩展抽象用户: 然后参考如下其他模型: 这是形式: 这是视图: 我的问题是: > < li> 如何显示全名字段 以及如何通过应用程序数据的视图将这些字段保存到MyModel模型中的成员字段中? 更新 我更新了AbstractUser模型,因为我忘记添加first_name

  • 问题内容: 我正在尝试学习python / django。 现在,我在models.py中拥有了所有模型 是否可以分解我的模型,以便每个模型在单独的models文件夹中可以有一个文件,以便可以执行以下操作: 问题答案: 有可能,只需确保将__init__.py在models目录中创建的所有模型导入。在你的情况下,它看起来像这样: 这需要完成,因为Django查找应用程序的模型。 正如其他人提到的那