ezv*_*ine 7 django postgresql django-models python-3.x django-rest-framework
我有一个 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)
Run Code Online (Sandbox Code Playgroud)
我正在使用以下序列化程序将数据保存到数据库:
class WebsiteConfigSerializer(serializers.ModelSerializer):
class Meta:
model = Website
fields = ('status', 'meta')
Run Code Online (Sandbox Code Playgroud)
当我尝试保存以下数据时,出现错误:
{
"status": true,
"meta": []
}
#ERROR:
# "meta : This list may not be empty."
Run Code Online (Sandbox Code Playgroud)
是否无法将空列表保存到ArrayField
?当我根本不传递该字段时,存储的值是{NULL}
。此外,在初始迁移期间,由于我添加了default
值 as list
,所以我所有现有条目的“元”值均为{}
如果根本不允许空列表值,那么为什么在初始迁移期间会保存它?
loi*_*ser 11
尝试改变你的模型
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, blank=True)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6547 次 |
最近记录: |