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

标签 python django django-models orm persistence

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

起初我考虑将模型子类化,但我试图保持应用程序的灵 active 。如果我使用子类,每次我需要一种新的对象时,我都需要创建一个完整的类,这不好。我最终也会得到很多子类,只是为了存储一对额外的字段。

我真的觉得字典是最好的方法,但是 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)

它并不漂亮,但它可以让您使用 DB 访问/搜索字典的内部结构,而 pickle/serialize 解决方案则不会。

关于python - 如何在 Django 模型上存储字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/402217/

相关文章:

django - 如何在 Django ORM 中按条件分组和聚合

django - 如何从 Excel 文件填充 django Manytomany 数据库

python - 如何动态更新 Django 中的模型?

python - 如何在 Python 中使用 pandas 读取 .p 存档?

python - 如何使用 Python 3.7 提取视频文件的元数据?

python - Rebuild_index不更新新项目 Haystack Elasticsearch Django

python - 将 Django 模型对象转换为 dict 并且所有字段都完好无损

python - PySpark:我们应该迭代更新数据框吗?

Python从视频文件中提取wav

python - Django 保存空白值