Django 模型 - 是否有一个合理的解决方案来处理子字典作为 Django 模型中的一个字段



我对Django和Django orm相当陌生。我需要对以下内容进行建模:

或者在 Python 伪代码中:

class Settings(Model):
    subsettings1 = somekindofdictfield({key:fields.BooleanField(), key:fields.BooleanField()})
    subsettings2 = somekindofdictfield({key:fields.BooleanField(), key:fields.BooleanField()})

我试图避免为每种子设置设置单独的类。这可以是动态的。所以这个解决方案看起来是错误的:

class Settings(Model):
    subsettings1 = ForeignKey(SubSettings1)
    #etc

我不怕有很多模型(我已经有),但我不想要不必要的模型。 与模式表等。我会很高兴从经验丰富的 Django 开发人员那里得到想法。

谢谢!

如果设置是不透明的(例如,你不需要根据字典中的特定值进行过滤),你可以使用django-picklefield之类的东西将它们存储为常规的Python对象。

>>> from picklefield.fields import PickledObjectField
... class SomeObject(models.Model): 
...     args = PickledObjectField()
>>> obj = SomeObject()
>>> obj.args = ['fancy', {'objects': 'inside'}]
>>> obj.save()

最新更新