You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django Model中创建可空字段,不填写时不报错?

Django Model 创建可空字段方案

要实现字段留空不报错,需要搭配使用 null 和 blank 两个字段参数:

  • null=True:定义数据库层面允许该字段存储 NULL 值,数值、日期、外键等非字符串类型的可空字段必须配置该参数
  • blank=True:定义表单校验层面允许该字段不填值,如果仅需要后台逻辑/ORM 操作时留空、不需要通过表单提交该字段,可以不配置该参数

示例:创建可空的newprice价格字段

假设newprice为小数类型的价格字段,写法如下:

from django.db import models

class Goods(models.Model):
    # 其他原有字段
    name = models.CharField(max_length=100)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    # 可空的新价格字段
    newprice = models.DecimalField(
        max_digits=10,
        decimal_places=2,
        null=True,
        blank=True
    )

注意事项

  • 字符串类型字段(CharField、TextField)不建议设置null=True,Django 约定用空字符串''表示字符串空值,仅设置blank=True即可,避免出现 NULL 和空字符串两种空值的逻辑混乱
  • 如果是给已有数据的表新增可空字段,需要设置default=None,或在执行makemigrations时选择为现有数据填充 NULL 值,否则迁移流程会报错

内容的提问来源于stack exchange,提问作者saleh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:45:05