📜  使列可为空 django - Python (1)

📅  最后修改于: 2023-12-03 15:36:26.012000             🧑  作者: Mango

使列可为空 Django - Python

在 Django 中,当您定义一个模型时,您可以指定字段是否可以为空。有时,您希望允许该字段为空,而在其他时候,您希望该字段始终存在值。本文将介绍如何使 Django 中的列可为空。

示例模型

为了演示如何使列可为空,请考虑以下示例模型:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    description = models.TextField(null=True)

在上面的示例中,我们定义了一个名为 Book 的模型,它包含 title,author 和 description 字段。请注意,description 字段具有 null=True 参数,这意味着它可以为空。

数据库迁移

如果您在模型中更改字段的 nullability(可以为空或不可为空),则需要运行 Django 数据库迁移以将更改应用于数据库架构。要运行迁移,请使用以下命令:

$ python manage.py makemigrations
$ python manage.py migrate
空值检查

在 Django 中检查空值时,请记住将检查非空属性,而不是值本身。要检查列是否为空,请使用列名 + “__isnull”查询参数。下面是一个示例查询,用于查找没有描述的书籍:

empty_descriptions = Book.objects.filter(description__isnull=True)
非空值查询

要查找具有非空值的列,请使用列名 + “__isnull=False”查询参数。下面是一个示例查询,用于查找具有非空描述的书籍:

non_empty_descriptions = Book.objects.filter(description__isnull=False)
结论

在 Django 中,使列可为空非常简单。只需将字段的 null 参数设置为 True 即可。在查询期间,请使用列名 + “__isnull”查询参数查找空值或非空值。如有疑问,请阅读Django官方文档: https://docs.djangoproject.com/en/3.2/ref/models/fields/#null