在filter() 方法,exclude() 方法中使用大于,小于,模糊匹配等操作符。
常见的操作符如下:
操作符 | 含义 | 示例 |
= | 等于 | Book.objects.filter(price=10) |
!= 或 __ne | 不等于 | 用于查找字段不等于特定值的记录。但更常用exclude()方法。 |
__gt | 大于 | 用于查找字段大于特定值的记录Book.objects.filter(price__gt=10) |
__gte | 大于等于 | Book.objects.filter(price__gte=10) |
__lt | 小于 | 用于查找字段小于特定值的记录。 Book.objects.filter(price__lt=10) |
__lte | 小于等于 | 用于查找字段小于等于特定值的记录。 Book.objects.filter(price__lte=10) |
__in | 在某个列表内 | 你想要获取所有作者在列表中的书籍,你可以使用__in这将返回一个QuerySet,其中包含了所有作者为 '小强' 或 '小龙' 的书籍。 authors = ['小强', '小龙'] |
__contains | 包含 | 用于查找字段包含特定子字符串的记录。 Book.objects.filter(title__contains="Python") |
__icontains | 不包含 | 用于查找字段不包含特定子字符串的记录。注意, Book.objects.exclude(title__icontains="Python") |
__startswith | 以...开始 | 用于查找字段以特定字符串开始的记录。 Book.objects.filter(title__startswith="Python") |
__endswith | 以...结束 | 用于查找字段以特定字符串结束的记录。 Book.objects.filter(title__endswith="Book") |
__exact | 精确匹配 | 用于查找字段等于特定值的记录。这与直接使用 Book.objects.filter(title__exact="Python Cookbook") |
__regex 或 __iregex | 模糊匹配 | 用于使用正则表达式匹配字段的记录。 Book.objects.filter(title__iregex=r"Python.*") |
__year | 日期字段的年份 | 假设你有一个Post模型,其中包含一个created_at字段,类型为DateTimeField。如果你想获取所有在2023年创建的帖子,你可以使用__year这将返回一个QuerySet。 posts=Post.objects.filter(created_at__year=2023) |
__month | 日期字段的月份 | 假设你有一个Sales模型,其中包含一个sale_date字段,类型为DateTimeField或DateField 。如果你想获取所有在6月份的销售记录,你可以使用__month操作符如下:这将返回一个QuerySet,其中包含了所有在6月份的销售记录。 from myapp.models import Sales sales_in_june = Sales.objects.filter(sale_date__month=6) |
__day | 日期字段的天数 | 假设你有一个Event模型,其中包含一个event_date字段,类型为DateTimeField或DateField。如果你想获取所有在15号发生的事件,你可以使用__day from myapp.models import Event |
__week_day | 获取指定周日之前的数据 | 假设你有一个LogEntry模型,其中包含一个timestamp字段,类型为DateTimeField。如果你想获取所有在星期五发生的日志条目,你可以使用__week_day操作符如下:这将返回一个QuerySet,其中包含了所有在星期五发生的日志条目。请注意,Django中的星期几是以1开始的,即1表示星期一,7表示星期日。 from myapp.models import LogEntry entries_on_friday = LogEntry.objects.filter(timestamp__week_day=5) |
__hour | 获取指定区间小时的数据 | 假设你有一个ActivityLog模型,其中包含一个timestamp字段,类型为DateTimeField from myapp.models import ActivityLog |
__minute | 获取指定区间分的数据 | 假设你有一个SystemLog模型,其中包含一个timestamp字段,类型为DateTimeField from myapp.models import SystemLog |
__second | 获取指定秒的数据 | 假设你有一个Trade模型,其中包含一个timestamp字段,类型为DateTimeField。如果你想获取所有在某个特定秒数内发生的交易记录,你可以使用__second操作符如下:这将返回一个QuerySet,其中包含了所有在10点30分15秒发生的交易记录。 from myapp.models import Trade |
& , | | 查询多个条件 | 使用Q对象,可以使用逻辑“与”(&)和“或”(|)操作符来组合多个查询条件 from django.db.models import Q |
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Django 常见的操作符
发表评论 取消回复