null=True – Django 内置字段验证
Django 模型中的内置字段验证是为所有 Django 字段预定义的默认验证。每个字段都带有来自 Django 验证器的内置验证。还可以添加更多内置字段验证,以在特定字段上应用或删除某些约束。 null=True
将使该字段接受NULL值。 Django 字段类型(例如 DateTimeField 或 ForeignKey)的空白值将在数据库中存储为NULL 。
句法
field_name = models.Field(null = True)
Django 内置字段验证null=True
解释
使用示例说明 null=True。考虑一个名为geeks
的项目,它有一个名为geeksforgeeks
的应用程序。
Refer to the following articles to check how to create a project and an app in Django.
- How to Create a Basic Project using MVT in Django?
- How to Create an App in Django ?
在极客应用的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 修改字段以接受NULL值或在 python 的术语中为None值。
null=True 的高级概念
避免在基于字符串的字段(例如 CharField 和 TextField)上使用 null。如果基于字符串的字段具有null=True
,这意味着它有两个可能的“无数据”值: NULL和空字符串。在大多数情况下,“无数据”有两个可能的值是多余的; Django 约定是使用空字符串,而不是 NULL。一个例外是当 CharField 同时设置了unique=True和blank=True时。在这种情况下,需要null=True
以避免在保存具有空白值的多个对象时违反唯一约束。
对于基于字符串和非基于字符串的字段,如果您希望在表单中允许空值,还需要设置blank=True
,因为 null 参数仅影响数据库存储(请参阅空白)。
更多内置字段验证
Field Options | Description |
---|---|
Null | If True, Django will store empty values as NULL in the database. Default is False. |
Blank | If True, the field is allowed to be blank. Default is False. |
db_column | The name of the database column to use for this field. If this isn’t given, Django will use the field’s name. |
Default | The default value for the field. This can be a value or a callable object. If callable it will be called every time a new object is created. |
help_text | Extra “help” text to be displayed with the form widget. It’s useful for documentation even if your field isn’t used on a form. |
primary_key | If True, this field is the primary key for the model. |
editable | If False, the field will not be displayed in the admin or any other ModelForm. They are also skipped during model validation. Default is True. |
error_messages | The error_messages argument lets you override the default messages that the field will raise. Pass in a dictionary with keys matching the error messages you want to override. |
help_text | Extra “help” text to be displayed with the form widget. It’s useful for documentation even if your field isn’t used on a form. |
verbose_name | A human-readable name for the field. If the verbose name isn’t given, Django will automatically create it using the field’s attribute name, converting underscores to spaces. |
validators | A list of validators to run for this field. See the validators documentation for more information. |
Unique | If True, this field must be unique throughout the table. |
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。