如何在Django模型中存储字符串数组?

34 投票
6 回答
37494 浏览
提问于 2025-04-16 07:42

我正在创建一个Django的数据模型,我想在其中一个变量里存储一组字符串;我该怎么做呢?

比如:

class myClass(models.Model):
    title = models.CharField(max_length=50)
    stringArr = models.???

谢谢你的帮助。

6 个回答

13

如果你在使用PostgreSQL或者MongoDB(配合djongo),你可以这样做。

对于PostgreSQL:

from django.contrib.postgres.fields import ArrayField

对于MongoDB(配合Djongo):

from djongo import models
from django.contrib.postgres.fields import ArrayField

然后

stringArr = ArrayField(models.CharField(max_length=10, blank=True),size=8)

以上的方法在这两种情况下都可以使用。

13

你可以使用一些序列化机制,比如JSON。这里有一段字段定义的代码,可能对你有帮助:

http://djangosnippets.org/snippets/1478/(看看最后一个评论里的代码)

有了这样的字段,你可以很方便地把字符串放进一个列表里,然后把它们赋值给这个字段。字段的抽象会处理剩下的事情。读取的时候也是一样的。

13

创建一个新的模型,这个模型里保存一个字符串,并且可以选择性地添加一个顺序。然后给它一个ForeignKey,指向myClass,把你的数组存放在这里面。

撰写回答