yanjunwu
1.关联关系映射及查询
1.1django默认开启延迟加载所有多对1和1对1如果不使用select_related(),需要会延迟加载获取到相关对象,因为延迟可能会造成n+1次查询的问题,所以便有了
select_related()进行急迫抓取;
1.2django默认不会去取多对多的的多方,除非使用prefetch_related(\'roles\'), 【User的class中申明 roles = models.ManyToManyField("Role") 

1.3django不需要配置1对多这种关系,A的子表B映射了foreignKey,django会底层给附表A的类加上一个b_set,当然此名字(b_set)可以用foreignKey的参数related_name指定
2.F表达式:
from django.db.models import F
(忘记了可以在已有项目中搜索)
获取字段1<字段2的数据-->querySet.filter(field1__lt=F(\'field2\'))

3.Q值表达式:
from django.db.models import Q (忘记了可以在已有项目中搜索)

视频参见:https://www.imooc.com/learn/1087 (全部orm查数据库知识都包含了)
网页参见:https://www.colabug.com/2309808.html https://www.cnblogs.com/fqh202/p/9115121.html https://cn.aliyun.com/jiaocheng/451495.html


django的分组使用annotate,如:RebotPhone.objects.values(\'status\').annotate(count = Count(\'phone_id\')).values(\'status\',\'count\').order_by()
第一个values是分组字段,第二个values是需要查询的字段, order_by():默认的排序字段也会自动加入到GROUP BY子句中. 要避免这样的情况,只需在查询时清空默认的order by


分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-12-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-17
  • 2021-08-29
猜你喜欢
  • 2021-10-19
  • 2022-12-23
  • 2022-02-25
  • 2022-12-23
  • 2021-05-26
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案