创建一个简单的" Django模型中的字典?

时间:2018-05-14 20:43:24

标签: django python-3.x django-models orm

对模糊标题表示道歉,但我在描述这个概念时遇到了麻烦。

基本上我想要的是将我创建的一些json数据导入到某些Django模型中。

我的数据基本上是这样的:

[
    {
        name: "Bingfordshire"
        results: {
            'LIB' : 23,
            'PC': 25
        },
        more dictionaries here....
    },
    more objects here....
]

我已经为外部对象设置了一个模型,但我正在努力学习如何表示这些内部词典。我的第一个想法就是使用这样的字段:

class Riding:
    lib_result = models.DecimalField()
    pc_result = models.DecimalField()

但是我有三个这样的词典,每个都有大约4个词条,这使得这很多打字,如果我想要添加新词或其他东西,那就很难改变。

我的下一个想法是使用数据库关系:

class PartyResult:
    party = models.CharField()
    result = models.DecimalField()

class Riding:
    results = models.ManyToManyField(PartyResult)

但这增加了使用它的一些复杂性,并使管理网站的可用性降低了很多,而且我不想只是为了阅读一个Riding而做一堆数据库查询。现在,我已经意识到我可以在PartyResult中使用ForeignKey导致骑行,这确实使它更容易,但我仍然觉得我在这里错过了某种解决方案#&# 39;根本不需要关系。

我对数据库和ORM知之甚少,所以我希望有一些我错过的明显解决方案。

1 个答案:

答案 0 :(得分:0)

最后我放弃了,只使用了Django的JSONFields和Postgres。得到我正是我想要的。