django 模型 字段说明

default 设置默认值
primary_key 若为True,则该字段会成为模型的主键字段,默认值为False
unique 如果为True,则该字段在表中必须有唯一值,默认值为False
db_index 如果为True,则在表中为此字段创建索引,默认值为False
db_column 字段的名称,如果未指定,则使用属性的名称
null 如果为True 表示允许为空,默认值为False
blank 如果为True 则该字段允许为空白,默认值为False
verbose_name 就是在后台显示对应的名称
on_delete属性对应外键ForeignKey
on_delete=None 删除关联表中的数据时,当前表与之关联的field的行为
on_delete=models.CASCADE 删除关联数据,与之关联也删除
on_delete=models.DO_NOTHING 删除关联数据,什么也不做
on_delete=models.PROTECT 删除关联数据,引发错误ProtectedError
on_delete=models.SET_NULL 删除关联数据,与之对应的值设为null
on_delete=models.SET_DEFAULT 删除关联数据,与之关联的值设为默认值
on_delete=models.SET 删除关联数据

models.SET(值) 与之关联的值设置为指定值
models.SET(可执行对象) 与之关联的值设置为可执行对象的返回值

verbose_name 表示单数形式的显示
verbose_name_plural 表示复数形式的显示

choices接收一个元组,保证值不可变,每个元组中的第一个元素是要在模型上设置的实际值,第二个元素是人类可读的名称,同理每一个选项也是一个元组(value,display_name)构成,显而易见,display_name就是要显示在页面上的
获取value和display_name:
比如一个实例User的user对象
user.sex = value
user.get_sex_display() = display_name
通过属性取value
通过get_属性_display()方法取display_name

related_name属性
先定义两个模型,一个是作者,一个是作者的出版书籍,算是一对多的关系
class Person(models.Model);
name = models.CharField(verbose_name=‘作者姓名’, max_length=10)
age = models.IntegerField(verbose_name=‘作者年龄’)

class Book(models.Model):
person = models.ForeignKey(Person, related_name=‘person_book’)
title = models.CharField(verbose_name=‘书籍名称’, max_length=10)
pubtime = models.DateField(verbose_name=‘出版时间’)
查询一个作者出版了哪些书
方式一:
person = Person.objects.filter(条件) 查询作者
book = person.book_set.all() 根据作者查询书籍
默认返回的是一个querydict对象

方式二:
person = models.FpreignKey(Person,related_name=“person_books”)
实现上面需求可以使用person.person_books.all()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值