mar*_*lta 2 django django-models django-rest-framework
Rest Framework Django - 禁用字段接受空值
如何配置序列化模型以接受空白字段?
警告
{"Operacao": ["This field can not be blank."]}
Run Code Online (Sandbox Code Playgroud)
模型
class SEF(models.Model):
operacao = models.CharField(max_length=10, null=True)
documento = models.CharField(max_length=50, null=True)
user = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)
序列化器
class SEFCreateSerializer(serializers.ModelSerializer):
class Meta:
model = SEF
fields = ('operacao', 'documento', 'user')
Run Code Online (Sandbox Code Playgroud)
看法
sef_create = SEFCreateSerializer(data=data, many=True)
if sef_create.is_valid():
sef_create.save()
salvo = HTTP_200_OK
else:
salvo = sef_create.errors
Run Code Online (Sandbox Code Playgroud)
class SEFCreateSerializer(ModelSerializer):
class Meta:
model = SEF
fields = ('operacao', 'documento', 'user')
extra_kwargs = {'operacao': {'required': False}}
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以设置默认值,例如
operacao = models.CharField(max_length=10, default=0)
Run Code Online (Sandbox Code Playgroud)
如果您像这样在模型中指定一个字段,如果不存在任何内容,它将采用默认值 0。
或在序列化器中
operacao = serializers.CharField(allow_null = True)
Run Code Online (Sandbox Code Playgroud)
在字段定义中包含 allow_blank=True 如下:
operacao = serializers.CharField(allow_blank=True, allow_null=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5784 次 |
| 最近记录: |