繁体   English   中英

在循环中串联Django QuerySet是正确的做法吗?

Is Concatenating Django QuerySets In A Loop The Right Thing To Do?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个称为Collection的Django模型,它表示项目(CollectionItem)的集合。 每个集合仅包含特定类型的项目。 (CollectionItem具有Collection的外键)。

我想获取特定类型的公共标记列表中的所有CollectionItem,并将它们按特定字段排序。 这是我使用的查询代码:

lists = Collection.objects.filter(is_public=True, type=7)
items = CollectionItem.objects.none()
for list in lists:
    items |= CollectionItem.objects.filter(collection=list)
items = items.order_by('name')

我必须想象,当我拥有一个包含大量列表和项目的大型数据库时,这根本无法很好地扩展。 在Django中还有更好的方法吗? 还是与其他我不应该太担心的选项相比,查询循环中的效率低到可以忽略不计?

1 个回复

听起来您只需要:

items = CollectionItem.objects.filter(
                    collection__is_public=True, collection__type=7
               ).order_by('name')
1 在For循环中串联对象

我想在objConcat变量中执行如下所示的串联,但是对象数为X。 有时我需要串联两个对象,有时我需要串联50个对象。 如何在不必手动创建这些单个对象变量的For循环中对此进行迭代? importData()函数返回一个对象。 ...

2 在for循环中串联

这是一个将用户输入的字符串反向的循环,它会反向读取字母并将其放入句子中。 问题是,例如用户的输入是hello,代码的最后一行中的comma(,)使输出变为olleh,但是如果那里没有逗号,则输出将在一行中包含每个字母。 和串联(+)不起作用,它会给出一个错误。 我该怎么做,以便输出将是ol ...

2013-12-15 19:28:59 2 194   python
3 在for循环中串联numpy数组

我在for循环的每次迭代中创建一个大小为20x30x30x3的numpy数组。 我想将所有这些numpy数组连接成一个更大的数组。 如果迭代步骤为100,则我想要的numpy数组应为2000x30x30x3 。 我尝试使用列表: 在每个迭代步骤new_one_arr1和new_on ...

4 在R中的for循环中串联

我试图将新变量添加到通过读取数据集创建的现有数据框中。 数据集可以在此处找到,但格式为csv。 我想添加一个名为x的mew变量,该变量从该数据帧的V2列读取。 如果V2值为1,则x中的等效值应为“生存”。 如果为0,则x表示“死亡”。 我决定构造一个使用if语句的简单for循 ...

5 MATLAB:for循环中的串联错误

我正在用MATLAB中的2D条幅数据制作3D网格。 我在这里给出了一个非常简短的表示: 当我给出日期,即在for循环中将p作为单个值(iq 1/2)连接所有高度( hh )的2D ZI矩阵时,代码正在运行,并且正在生成3D ZZZ ,但是对于p=1:3或任何其他值,仅对p一次迭代后,会 ...

6 Django QuerySet最佳做法

有没有更好的办法做到这一点 正如我在sql日志中看到的那样,us.exists()将执行一个sql查询,然后u = us [0]将执行另一个查询。 因此,我们必须执行两次查询才能完成任务。 我只想问一个更好的方法来做到这一点 ...

7 在for循环中串联数据帧

我写了一堂课来刮擦公众假期的数据,但是我想像这样多年重复我的课: 我的班级使用了国家的名称和年份,所以outputt_path在这里没有用。 _read_html_()建立一个干净的数据框,我想附加每个数据框。 这是一年的数据框架的示例: ...

9 for循环中的代码点火器串联

我有这样的代码点火器代码。 在这里,我将所有电子邮件ID串联在一个for循环中。 我正在寻找的是避免串联任何电子邮件,如果它已经在$ emailid变量中了。 请帮助 ...

10 for循环中的Pandas DataFrame串联返回空的DataFrame

我试图将一个DataFrame的几个周期性数据元素相互堆叠以更改DataFrame的尺寸。 例如,从100x20转到500x4。 我花了很多时间来检查这一点,我找不到比这更好的东西了 ,在这种情况下应产生相同的解决方案。 但是,无论使用哪种选项,都将其放置在循环的末尾,该循环 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM