Django模型字段-仍然可以定义存储对象的字段

时间:2019-10-15 01:07:51

标签: django reactjs

我正在尝试将Django添加到我的react项目中。目前,我一直坚持在Django中定义与我处于React状态的模型字段相关。

这是我以前的状态(当我将所有信息直接存储在状态中时

This is what my old state looks like (when I stored all the info directly in the state)

这是我的新状态(当我从api提取数据并将其存储到状态时

This is what my new state looks like (when I fetched the data from api and stored it into the state)

这是我用来将数据加载到Django数据库的JSON文件

This is the JSON file I'm using to load the data to django database

我想要拥有“ teamBackground”,“ textColor”,“ votedUpColor”,“ votedDownColor”属性的原因是,我希望能够为每个团队设置样式。

我的问题是如何将这些属性的值从字符串转换为对象?

我尝试将这些属性定义为CharField和JSONField,但是它们似乎不起作用。有什么办法可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

对象不能存储在关系数据库AFAIK中。您也不需要存储它们。有几种可能的方法可以解决您的问题。

  1. 您可以为teamBackground,textColor,votedDownColor,votedUpColor创建单独的关系。所有这些关系将只有一列“颜色”。如果您计划向这些类中的任何一个添加更多属性,则这可能是更好的解决方案。然后,您将在这些关系和原始关系之间建立一对一的关系。

  2. 您可以将它们添加为当前关系中的列。尽管这可能是最简单的方法,但它不可扩展。如果您需要teamBackground,textColor,votedDownColor,votedUpColor的其他对象,那么您可能还需要一个单独的关系。但是,如果您正在寻找骇客,则只需将其颜色添加到原始关系中,而不是添加对象。

  3. 同样,这是一种hack,但是您可以将对象转换为JSON字符串,然后将该字符串另存为关系中的列。检查here以获得有关在python中解码和编码JSON的更多信息。