如何在Django模型中存储字符串数组?
我正在创建一个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
,把你的数组存放在这里面。