我们正在制作电影数据库应用程序并使用 Django 1.7 和 PostgreSQL 。
这是我们models.py
文件的样子:
class Movies(models.Model):
name = models.CharField(max_length=50)
lang = models.ForeignKey(Language, null=True)
genre = models.ForeignKey(Genre, null=True)
cast = ArrayField(models.CharField(max_length=50))
为了适应我们使用的ArrayField
from djorm_pgarray.fields import ArrayField
from djorm_expressions.models import ExpressionManager
在模型中。
以下是为cast
生成的SQL:
ALTER TABLE movies_movies ADD COLUMN "cast" integer[];
即使我们指定了cast
,也知道CharField
列为什么会变成整数?
答案 0 :(得分:0)
根据djorm_pgarray docs,您可以按如下方式创建文本数组:
from djorm_pgarray.fields import TextArrayField
class Movies(models.Model):
# ...
cast = TextArrayField(dimension=1)
或者,根据this文章:
from djorm_pgarray.fields import ArrayField
class Movies(models.Model):
# ...
cast = ArrayField(dbtype="text", dimension=1)
关于max_length
的文本字段(varchar和text实际上与postgres相同):不确定,可以在postgres中的数组中定义它。