django - Django ORM。检索每个类别的 10 个项目
问题描述
我的 Django REST 中有 2 个模型。
class Category(models.Model):
name = models.CharField()
class Item(models.Model):
name = models.CharField()
category = models.ForeignKey(Category)
我需要构建查询集,每个类别都有 10 个项目。我不知道我需要筛选类别或项目,但也许有人可以帮助我。
我想我需要这样的东西:Item.objects.filter ..如果具有相同类别的项目不> 10。
如果有人告诉我一些方法或决定,我会很高兴。
解决方案
你可以试试这个:
items = {}
categories = Category.objects.prefetch_related('item_set').all()
for category in categories:
items[category.name] = list(category.item_set.all()[:10])
prefetch_related 方法将为您提供类别项目而无需不必要的数据库请求。
推荐阅读
- android - 高亮recyclerview的选中项
- arcore - 如何使用 arcore 和 sceneform 动态更改 2D 纹理的颜色
- python - 如果组中至少有一个值满足条件,则将虚拟值分配给整个组
- php - android没有显示来自php的结果
- asp.net-mvc - 将 AntiForgeryToken 从控制器传递到控制器
- javascript - 如何从 API 请求中获取 Twilio 帐户验证号?
- svg - 在 SVG 中同时使用折线的点移动圆
- mysql - 如何使用 id 从一个表更新两个表到另一个表?
- python-3.x - 在python中如何在使用for循环时垂直打印
- google-chrome-extension - chrome 扩展中的 XMLHttpRequest 跳过 readystate 3