我想知道是否可以在Django模型中存储数组?
我问这个问题是因为我需要int在一个字段中存储一个数组(例如[1,2,3]),然后能够搜索特定的数组并与之匹配,或者通过它的可能组合来进行匹配。
int
我当时正在考虑将该数组存储为CharFields中的字符串,然后在需要搜索内容时,将值(通过过滤其他模型获得)与’[‘,’]’和’,’连接在一起,然后使用带有生成字符串。问题在于,我将必须生成每种可能的组合,然后逐个过滤它们,直到获得匹配为止,而且我认为这样做可能效率不高。
CharField
因此,我希望您能给我其他可以尝试的想法。
我并不是在要求代码,关于如何实现这一点的任何想法都是很好的。
我有两个建议给您:
1)ArrayField如果您使用PostgreSQL作为数据库,请使用。您可以ArrayField 在此处了解更多信息。
ArrayField
2)将数组编码为JSON,并将其存储为纯字符串或使用此处JSONField找到的。
JSONField
我个人更喜欢第1个选项,因为这是一种更干净,更好的方法,但是取决于您实际用于存储可能无法使用的数据的方式。