Django QuerySets: Complete Usage Guide 2023

In Django, a QuerySet is an object used to interact with the database, allowing you to perform database queries and retrieve results. You can use a QuerySet through a model manager or the QuerySet API.

Here are some examples of using QuerySet:

  1. Get a QuerySet using a model manager.
from myapp.models import MyModel

# 获取所有MyModel对象的QuerySet
queryset = MyModel.objects.all()

# 获取符合条件的MyModel对象的QuerySet
queryset = MyModel.objects.filter(field='value')
  1. Filter and sort using QuerySet API:
# 获取前5个MyModel对象的QuerySet
queryset = MyModel.objects.all()[:5]

# 根据字段排序MyModel对象的QuerySet
queryset = MyModel.objects.order_by('field')

# 根据多个字段排序MyModel对象的QuerySet
queryset = MyModel.objects.order_by('field1', 'field2')

# 过滤并排序MyModel对象的QuerySet
queryset = MyModel.objects.filter(field='value').order_by('field')
  1. Further manipulate the QuerySet.
# 获取QuerySet中的第一个对象
obj = queryset.first()

# 获取QuerySet中的最后一个对象
obj = queryset.last()

# 获取QuerySet中的数量
count = queryset.count()

# 将QuerySet转换为列表
objects_list = list(queryset)
  1. Performing aggregation operations with QuerySet:
from django.db.models import Avg, Count, Sum

# 计算MyModel对象中某个字段的平均值
average = MyModel.objects.all().aggregate(avg=Avg('field'))

# 计算MyModel对象中某个字段的总和
total = MyModel.objects.all().aggregate(sum=Sum('field'))

# 计算MyModel对象的数量
count = MyModel.objects.all().count()

These are some common examples of using QuerySet, from which you can further customize and perform operations based on specific needs.

bannerAds