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来进行查找使用

原文地址:https://www.cnblogs.com/zhaoyunlong/p/9319932.html