ORM的补充
之前学习的orm的操作类似:
create delete update filter/all exclude values values_list get first last order_by
补充两个
only 和 defer
从字面意思就可以得到 only仅仅查找这个内容
only()-------> 仅仅查找它所规定的
user表内有有id name pwd 这三列
比如查询user表内 id 和name这两列的内容
user_lidt = User.objects.all().only('id','name')
defer() -------> 查询排除选中的所有内容
查询排除pwd'的所有内容
user_list = User.objects.all().defer('pwd')
当你在数据库中设置了一个字段可以选择对应的汉字的时候:
valid_period_choices = ((1, '1天'), (3, '3天'), (7, '1周'), (14, '2周'), (30, '1个月'), (60, '2个月'), (90, '3个月'), (180, '6个月'), (210, '12个月'), (540, '18个月'), (720, '24个月'), )
就是给valid_period这个字段用choice设置一个可以选择的信息
这个时候我们取值的时候如果想取初对应的字段的中文 就可以用get_字段_display()这个方法来取对应的值
get_字段_display()
取上面的字段的对应的中文
对象.get_valid_period_display()
related_name
字段中可以加一个属性related_name 这个是关联其他表并且给自己的表 起名字的属性 以后外键表查找的时候就使用related_name 后面的值来查找
chapter = models.ForeignKey("CourseChapter", related_name='coursesections')
外键表CourseChapter 查找这个表就使用 releted_name 后面的值来查找
并且关联表的时候也可以使用Content_Type来进行查找使用