django数据库模型明明设置了default值,数据库却不能体现,为何?

class Book(models.Model):
    """图书"""
    name = models.CharField(max_length=30, verbose_name='书名')
    pub_date = models.DateField(verbose_name='发布日期')
    read = models.IntegerField(default=0, verbose_name='阅读量')
    comment = models.IntegerField(default=0, verbose_name='评论量')
    is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')

    class Meta:
        db_table = 'tb_book'
        verbose_name = '图书'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

如上所示,模型类中明明对read,comment,is_delete字段设置了默认值,但迁移数据库生成表后,查看数据库,竟然发现没有默认值.

实际是这样的,虽然数据库没有增加默认值,但操作orm时,默认值会生效.

实际上,模型类中的限制,有些会体现在表结构中,有些却不会立即体现出来.

comment = models.CharField(max_length=100, null=True, blank=True, verbose_name='描述信息')

这个字段,在数据库中就明显体现了其作用:

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值