【发布时间】:2020-11-16 18:42:42
【问题描述】:
我有一个 Django 模型
from django.db import models
from django.contrib.postgres.fields import ArrayField
class Website(models.Model):
id = models.BigAutoField(primary_key=True, verbose_name='ID')
status = models.BooleanField(default=True)
meta = ArrayField(base_field=models.CharField(max_length=200, null=True), default=list)
我正在使用以下序列化程序将数据保存到数据库:
class WebsiteConfigSerializer(serializers.ModelSerializer):
class Meta:
model = Website
fields = ('status', 'meta')
当我尝试保存以下数据时,出现错误:
{
"status": true,
"meta": []
}
#ERROR:
# "meta : This list may not be empty."
不能将空列表保存到 ArrayField 吗?
当我根本不传递该字段时,存储的值是{NULL}。
同样在初始迁移期间,由于我将 default 值添加为 list,因此我所有现有条目的“元”值都为 {}
如果根本不允许空列表值,那么在初始迁移期间如何保存?
【问题讨论】:
标签: python-3.x django postgresql django-models django-rest-framework