mysql - 在 Django 中存储列表的最佳方式(不是 Postgres)
问题描述
我有一个 mysql 数据库并且正在存储一个列表。我目前将它存储为 CharField 但不知道这是否是最好的方法。我知道如果我的数据库是 postgres,我应该使用 ArrayFeild,但它是 MYSQL。
我对这个解决方案很满意,直到我意识到数据是这样存储的:['COM', 'CRI', 'CUL', 'FOO']
而我希望它是这样存储的:[['COM'], ['CRI'], ['CUL'], ['FOO']]
。
表格.py
TOPICS = (
('ANI', 'Animals'),
('ART', 'Art'),
('COM', 'Communication'),
)
topics = forms.MultipleChoiceField(choices=TOPICS, required=False,
widget=forms.CheckboxSelectMultiple())
模型.py
topics = models.CharField(max_length=200, default='')
数据如何存储在我的数据库中:
['COM', 'CRI', 'CUL', 'FOO']
谢谢你。
解决方案
不,这有点棘手。我遇到过同样的问题。我试图用 toString 等东西来做这件事。我最终使用了 JSONField。因此,您可以将所有内容都放入一个 var 中,当您保存此 Django 时,会将其转换为 DB 中的 JSONField。如果你从你的数据库中加载它,你可以像往常一样访问这些值。你可以循环它或你想用它做什么
在模型.py
import jsonfield
class Example(models.Model):
example = jsonfield.JSONField()
所以这对我来说很好,如果你需要其他任何东西,请告诉我。pip install django-jsonfield pip 命令。
如果您需要更多示例或代码示例,请告诉我。
推荐阅读
- django - 如何按非字段值过滤 Django 查询集
- jupyter - 在与 jupyter lab 相同的端口上运行 Tensorboard
- codeigniter - 如何指定安装 SSL 的 base_url?
- javascript - 将 data-* 属性添加到 jquery 数据表
- ruby-on-rails - 在 Spec 中测试 Rails 模型,如何创建高效的示例?
- xml - findnodes 找不到给定的路径
- json - 执行 segue swift 4
- javascript - 从两点经纬度旋转 div 线
- python - 如何正确获取python类型的变量?
- javascript - 如何在 javascript 中创建删除/删除功能按钮?可以删除元素的按钮