在 Django 1.9.2 数据库 sqlite3 中插入​​列表

Posted

技术标签:

【中文标题】在 Django 1.9.2 数据库 sqlite3 中插入​​列表【英文标题】:Insert an list in Django 1.9.2 database sqlite3 【发布时间】:2016-05-23 01:47:59 【问题描述】:

我想在 Django 的数据库中存储一个列表。我应该使用哪个模型字段以及如何使用。我试过 ArrayField 但它没有列出。

from django.contrib.postgres.fields import ArrayField
from django.db import models
class signup(models.Model):
    userid=models.CharField(max_length=10)
    password=models.CharField(max_length=10)
    list=ArrayField(models.IntegerField(null=True,blank=True),size=5,null=True)
    score=models.IntegerField(default=0)

【问题讨论】:

ArrayField 特定于 PostgreSQL。你列出的是什么样的?都是整数吗?您是否需要对列表进行查询? 列表由整数组成。我需要阅读和修改列表中的每个元素 您可以尝试将它们存储在CharField 中,方法是在存储时将列表转换为字符串 (";".join(my_list)),然后在读取时将列表转换为字符串 (my_model.list.split(";")) 【参考方案1】:

您需要为ArrayField()定义一个默认类型,在这种情况下,它需要定义为default=list

另外,不能使用strlistint等关键字作为变量名!

您的代码应如下所示:

from django.contrib.postgres.fields import ArrayField
from django.db import models
class signup(models.Model):
    userid=models.CharField(max_length=10)
    password=models.CharField(max_length=10)
    lst=ArrayField(
        models.IntegerField(null=True,blank=True),
        size=5,
        default=list,
        null=True
    )
    score=models.IntegerField(default=0)

【讨论】:

以上是关于在 Django 1.9.2 数据库 sqlite3 中插入​​列表的主要内容,如果未能解决你的问题,请参考以下文章

Django:使用 sqlite3 作为数据库在 Heroku 上部署应用程序

在 Django 中将 SQLite3 数据库迁移到 MySQL

Django基础之数据库与ORM

在开发过程中使用 Django、South 和 Sqlite [关闭]

如何将 Django 模型从 mysql 迁移到 sqlite(或在任何两个数据库系统之间)?

Django入门问题解决01