当前位置: 首页 > wzjs >正文

手机怎样建网站工信部网站备案用户名

手机怎样建网站,工信部网站备案用户名,深圳外贸建设网站,石家庄网站建设推广报价在 Django 中,双下划线(__)查询是一种强大的语法,用于在 ORM(对象关系映射)中跨关联模型进行字段查询,或使用内置查询表达式(如过滤、聚合等)。以下是其核心用法和示例&a…

在 Django 中,双下划线(__)查询是一种强大的语法,用于在 ORM(对象关系映射)中跨关联模型进行字段查询,或使用内置查询表达式(如过滤、聚合等)。以下是其核心用法和示例:

1. 跨关联模型查询

通过双下划线可以引用关联模型(ForeignKey、ManyToManyField、OneToOneField)的字段。

示例模型:

class Author(models.Model):name = models.CharField(max_length=100)class Book(models.Model):title = models.CharField(max_length=100)author = models.ForeignKey(Author, on_delete=models.CASCADE)

查询示例:

# 查询作者名为"Alice"的所有书籍
books = Book.objects.filter(author__name="Alice")# 查询所有写过标题包含"Python"的书籍的作者
authors = Author.objects.filter(book__title__icontains="Python")

2. 字段查找表达式

双下划线后可接多种查询表达式,如:
比较运算符
exact:精确匹配(默认)
gt、gte、lt、lte:大于、大于等于、小于、小于等于
in:包含在列表中
range:范围查询

示例:

# 查询价格大于100的产品
products = Product.objects.filter(price__gt=100)# 查询ID为1、3、5的用户
users = User.objects.filter(id__in=[1, 3, 5])

字符串处理
contains、icontains:包含(区分 / 不区分大小写)
startswith、istartswith:以… 开头
endswith、iendswith:以… 结尾
regex、iregex:正则表达式匹配

示例:

# 查询邮箱以"@gmail.com"结尾的用户
users = User.objects.filter(email__endswith="@gmail.com")

日期和时间处理
year、month、day:提取日期部分
hour、minute、second:提取时间部分
date:日期比较
time:时间比较

示例:

# 查询2023年创建的订单
orders = Order.objects.filter(created_at__year=2023)# 查询昨天创建的所有对象
from datetime import date, timedelta
yesterday = date.today() - timedelta(days=1)
objects = MyModel.objects.filter(created_at__date=yesterday)

空值和布尔值
isnull:是否为空(True/False)
exact:布尔值匹配

示例:

# 查询没有关联图片的文章
articles = Article.objects.filter(image__isnull=True)# 查询已发布的文章
articles = Article.objects.filter(is_published__exact=True)

3. 多级跨关联查询

可以通过多个双下划线连接多层关联模型。

示例模型:

class Country(models.Model):name = models.CharField(max_length=100)class City(models.Model):name = models.CharField(max_length=100)country = models.ForeignKey(Country, on_delete=models.CASCADE)class User(models.Model):name = models.CharField(max_length=100)city = models.ForeignKey(City, on_delete=models.CASCADE)

查询示例:

# 查询来自中国北京的所有用户
users = User.objects.filter(city__name="Beijing", city__country__name="China")

4. 聚合查询与双下划线

在聚合函数(如Sum、Avg)中也可使用双下划线跨模型引用字段。

示例:

from django.db.models import Sum
# 计算每个作者的总书籍销量
authors = Author.objects.annotate(total_sales=Sum("book__sales"))

注意事项

性能问题:多级跨关联可能导致 SQL 查询复杂度增加,建议结合select_related()或prefetch_related()优化。
反向关联:通过关联模型反向查询时,默认使用模型名小写加_set(如author.book_set.all()),但在双下划线查询中可直接使用模型名小写(如author__name)。
空值处理:使用跨关联查询时,若关联对象不存在,查询结果可能为空,需谨慎处理。

通过双下划线查询,Django ORM 可以简洁地表达复杂的数据库查询逻辑,避免编写原生 SQL。


文章转载自:

http://zIXGEMSD.mjpgL.cn
http://dtOwhSFs.mjpgL.cn
http://OcGKfd9j.mjpgL.cn
http://uFMOwhyh.mjpgL.cn
http://NHCUVblA.mjpgL.cn
http://F1JNhufr.mjpgL.cn
http://WxdBrXVS.mjpgL.cn
http://GFKwOild.mjpgL.cn
http://u6Dg5h5r.mjpgL.cn
http://WeuphIex.mjpgL.cn
http://6cX4Vqsi.mjpgL.cn
http://eaZyAjel.mjpgL.cn
http://1AYxA54q.mjpgL.cn
http://wM1RJKsW.mjpgL.cn
http://dSfz1aNi.mjpgL.cn
http://RYI4rrxq.mjpgL.cn
http://t4kklIEW.mjpgL.cn
http://DHx6oh3v.mjpgL.cn
http://YDGJzItI.mjpgL.cn
http://tQKVBXUL.mjpgL.cn
http://OFBEwJt5.mjpgL.cn
http://QIGUytoA.mjpgL.cn
http://95J0Vdmj.mjpgL.cn
http://A6fdIbLf.mjpgL.cn
http://Hh3rW9wx.mjpgL.cn
http://Wm9HbD6i.mjpgL.cn
http://WfQOg1IB.mjpgL.cn
http://vCfYuvAD.mjpgL.cn
http://88NQBAve.mjpgL.cn
http://4QiFPJDl.mjpgL.cn
http://www.dtcms.com/wzjs/745343.html

相关文章:

  • 网站地图设计泰安网络推广
  • 许昌网站建设汉狮套餐如何编辑企业网站
  • 网站的形式wordpress刷量插件
  • 西安模板网站建设网络服务提供者有哪些
  • 手机网站建设模板下载不懂英文怎么做英文的seo网站
  • 怀柔谁会网站开发wordpress 分类模板插件
  • 微信建微网站基于 wordpress 商城
  • 网站备案证书国内wordpress案例
  • 网站做留言板wordpress页面添加js
  • 免费手机网页网站沈阳seo建站
  • 做环球资源网站有没有效果网站出现乱码的原因
  • 佛山外贸企业网站建设互联网网站开发合同范本
  • wordpress 站长工具青岛外贸公司联系方式
  • 网站开发后如何维护电子商务网站建设价格
  • 饿了么网站做生鲜吗沈阳建设工程项目审批
  • 官方网站查询高考分数成都市温江区建设局网站
  • 石家庄微网站建设公司wordpress 极简
  • 做数学题挣钱的网站wordpress集成dz
  • 网站布局类型如何修改wordpress手机模板
  • 做网站推广前途网络工程师工资一般多少的
  • 怎么在工商局网站查公司网页开发报价单
  • 海南景区网站建设方案wordpress文章如何分类添加
  • 诚信网站备案中心seo优化人员
  • 注册公司流程流程图搜索引擎优化的五个方面
  • 网站建设 预付款北京官网seo
  • 那个网站做外贸最好商昊网站建设
  • 安徽天长建设局网站西安关键词seo
  • 做网站哪家公司便宜网站建设费用是否资本化
  • 上海著名网站建设企业类网站设计
  • 手机网站下拉列表快速做网站流量数据统计分析