首页 > 解决方案 > Django 允许保存具有空字段的模型对象

问题描述

下面是名为“Dataset”的模型,包含三个字段 name、desc 和 data_file。

class Dataset(models.Model):
    name = models.CharField(max_length=256)
    desc = models.TextField()
    data_file = models.FileField(upload_to='datasets/')

我用 python 命令创建了一个模型对象。

>>> d = Dataset()
>>> d.save()
>>> d.name, d.desc, d.data_file
('', '', <FieldFile: None>)

Django 允许保存这个对象。即使blank = False是每个字段的默认值。

我如何确定不能在这三个字段为空的情况下创建数据集对象?

下面是 sqlite3 架构:

CREATE TABLE IF NOT EXISTS "datasets_dataset"(
  "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
  "name" varchar(256) NOT NULL,
  "data_file" varchar(100) NOT NULL,
  "desc" text NOT NULL
);

标签: pythondjangodjango-models

解决方案


推荐阅读