Django中models.py字段选项null和blank的区别和使用。

1.null

如果null=True,数据库中空值储存为NULL,默认为False。

2.blank

如果blank=True,则允许字段为。默认为False。

需要注意的是,这不同于null,null纯粹是与数据库相关的。而blank是与表单验证相关,如果一个字段有blank=True,表单验证将允许输入一个空值,反之blank=False,该字段将必须是有值的。

3.当一个CharField字段都有unique=Trueblank=True设置。在这种情况下,null=True需要避免在使用空值保存多个对象时出现唯一的约束违规。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用 Django 的 `models.py` 创建个人亲属关系信息表的例子。在这个例子,我们定义了一个 `Person` 模型,它具有以下字段: - `first_name`:人名的名字部分 - `last_name`:人名的姓氏部分 - `date_of_birth`:出生日期 - `gender`:性别 - `father`:父亲的个人信息,是一个外键,引用了另一个 `Person` 模型 - `mother`:母亲的个人信息,也是一个外键,引用了另一个 `Person` 模型 - `spouse`:配偶的个人信息,同样是一个外键,引用了另一个 `Person` 模型 在这个例子,我们还为每个字段添加了注释,以提供更多的信息和上下文。 ```python from django.db import models class Person(models.Model): first_name = models.CharField(max_length=50, help_text="个人名字的名字部分") last_name = models.CharField(max_length=50, help_text="个人名字的姓氏部分") date_of_birth = models.DateField(help_text="个人的出生日期") GENDER_CHOICES = ( ('M', '男性'), ('F', '女性'), ('U', '未知'), ) gender = models.CharField(max_length=1, choices=GENDER_CHOICES, default='U', help_text="个人的性别") father = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True, related_name='children_as_father', help_text="个人的父亲信息") mother = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True, related_name='children_as_mother', help_text="个人的母亲信息") spouse = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True, related_name='spouse_of', help_text="个人的配偶信息") def __str__(self): return f'{self.last_name} {self.first_name}' ``` 在这个例子,我们使用了 `ForeignKey` 字段来表示人物之间的关系。这些字段允许我们在不同的人物之间建立关联,并允许我们在 `Person` 模型定义反向关系,以便可以轻松地从另一个 `Person` 实例访问与该人物相关的信息。 使用 `related_name` 参数,我们还定义了一些反向关系的名称,这些名称允许我们从父母或配偶的角度轻松地访问与该人物相关的信息。 希望这可以帮助您创建一个带有注释的个人亲属关系信息表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值