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

我需要在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解决方案。

以上是 如何在Django模型上存储字典? 的全部内容, 来源链接: utcz.com/qa/424175.html

回到顶部