社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

Django在M2M上执行查询的有效方法

Arbazz Hussain • 5 年前 • 1793 次点击  
class A(models.Model)
  results = models.TextField()
class B(models.Model)
  name = models.CharField(max_length=20)
  res = models.ManyToManyField(A)
  • 假设我们有两个以上的模型。 A 模型有数百万个对象。

我想知道什么是最有效/最快的方法 results objects 特别的 B 反对。

  • 假设我们必须检索对象号的所有结果 5 属于
Option 1 :  A.objects.filter(b__id=5)

   (OR)

Option 2 : B.objects.get(id=5).res.all()
  • 选项1:我的问题是按id筛选 一个 模型对象需要很多时间?因为有数百万 一个 模型对象。
  • 选项2:问题:是否 res 打开字段 模型存储 id 价值 一个 模型对象?

我之所以选择 2 因为它存储了 一个 建模对象&首先直接获取这些对象值,然后进行第二次查询以获取结果。而在第一个选项中,按id或任何其他字段过滤将占用大量时间

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52369
 
1793 次点击  
文章 [ 1 ]  |  最新文章 5 年前