null=True – Django内置字段验证

null=True – Django内置字段验证

Django模型中的内置字段验证是所有Django字段预定义的默认验证。每个字段都有来自Django验证器的内置验证。人们也可以添加更多的内置字段验证,以应用或删除特定字段的某些约束。Django字段类型如DateTimeField或ForeignKey的空白值在数据库中会被存储为NULL。

语法

field_name = models.Field(null = True)

Django内置字段验证 null=True 解释

用一个例子说明null=True的情况。考虑一个名为geeksforgeeks的项目,它有一个名为geeks的应用程序。

在geeks应用程序的models.py文件中输入以下代码。我们将使用CharField对所有字段选项进行实验。

from django.db import models
from django.db.models import Model
# Create your models here.
  
class GeeksModel(Model):
    geeks_field = models.CharField(max_length = 200, null = True)

在Django上运行了makemigrations和migrate,并渲染了上述模型后,让我们尝试从Django shell上用None创建一个实例。要启动Django shell,请输入以下命令。

Python manage.py shell

现在让我们尝试用None来创建GeeksModel的实例。

# importing required model
from geeks.models import GeeksModel
  
# creating instance of GeeksModel
s = GeeksModel.objects.create(geeks_field = None)
  
# saving current model instance
s.save()

让我们在管理界面检查模型的实例是否被创建。

null=True - Django内置字段验证
因此,null=True将字段修改为接受NULL值,或者用Python的话说是无值。

带有null=True的高级概念

避免在基于字符串的字段上使用null,如CharField和TextField。如果一个基于字符串的字段有null=True,这意味着它有两个可能的 “无数据 “值:NULL,和空字符串。在大多数情况下,为 “无数据 “设置两个可能的值是多余的;Django的惯例是使用空字符串而不是NULL。一个例外是当CharField同时设置了unique=True和blank=True。在这种情况下,null=True是必须的,以避免在保存多个空白值的对象时违反唯一约束。

对于基于字符串和非字符串的字段,如果你想在表单中允许空值,还需要设置 blank=True,因为null参数只影响数据库存储(见 blank)。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程