models 模型字段

本文介绍了Django Models中常用的字段类型如CharField、TextField、DateField等,并探讨了UUIDField的独特性质。此外,还讲解了字段的常用属性如unique、default、null和blank的含义和使用场景。当遇到Django迁移失败的情况,提出了清理迁移记录、数据库表及重新生成迁移文件的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用字段类型
  • django所有的数据模型都继承自models.Model
  • CharField max_length (输入框)
  • TextField 没有长度限制的字符串 (文本域)
  • DateField 日期
  • DateTimeField 日期+时间
  • BooleanField 真假
  • NullBooleanField Null,真假,
  • Integer 整数
  • PositiveIntegerField 正整数
  • DecimalField max_digits(几位数) decimal_places(小数点后保留几位)
  • ImageField 图片 依赖于 Pillow(处理图片) upload_to=‘upload’ 指定文件上传到目录
  • FileField(ImageField继承FileField)
  • AutoField
  • ForeignKey 1:n
  • ManyToManyField n:n
  • EmailField 邮箱
  • UUIDField 重复的概率非常低基本可以忽略,全世界都不一样的标示,uuid的产生和服务器的环境有关(CPU,网关,) 唯一性的标示,用户模块,订单号
  • 不同的字段在后台对应不同的html的组件

ImageField 依赖于Pillow组件(python库)

常用属性
  • unique 标示这个字段唯一
  • default 默认的意思 ,(如果不写的话就使用默认的值)
  • null=True 允许数据库层面该数据为null
  • blank=True admin后台的表单层面可为空
  • auto_now 针对时间的,自动调整当前,(当修改条目的时候,这个时间会自动更新),每次修改都会更新 (修改,保存的时候才会生效,)
  • auto_now_add 针对时间的,只添加一次,(创建的时间)

重点理解属性

  • 表单层面的东西(js判断字段是否是" "),不需要重写迁移数据库
  • unique=True 可以任何字段
  • default 数据库+表单层面(同时生效)
  • auto_now_add 创建的时候会自动的添加时间(数据库),(后台表单层面找不到这个字段)
  • auto_now 每次修改的时候自动更新,(数据库+表单层面)
  • null=True 数据库层面,允许为Null,不是空字符串
  • blank=True 表单层面的,后台选填(表单项元素可以为空,表单不会进行非空校验)

uuid

uuid.uuid4().get_hex() 【python2】
			
uuid.uuid4().hex 【python3】

django迁移失败如何处理

  • 删除模块下的所有的迁移记录 migrations 0001文件

  • 删除数据库中django_migrations表中问题模块的迁移记录

      	DELETE FROM django_migrations WHERE app='模块名'
    
  • 删除这个模块下已经产生的所有的表

  • 重新生成迁移文件

  • 重新迁移

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值