允许在django中创建复合查询集。
django-compoundqueryset的Python项目详细描述
django compoundqueryset
————————————————————————————————————————————————————————————————————————————————| pypi image::https://badge.fury.io/py/django compoundqueryset.svg
:target:https://pypi.python.org/pypi/django compoundqueryset
一个小django应用程序允许在不同表之间进行复合查询。
对于所述结果的分页特别有用。
支持的django版本:1.8,1.9,1.10
支持的python版本:2.7、3.3、3.4,3.5
>从这里可以获得``django compoundqueryset``的源代码:
:
有时你可能希望将两个具有相似字段的不同表组合起来,并将它们显示给用户。例如:
…代码::来自django.db导入模型的python
age=models.integerfield()
name=models.textfield(max_length=100)
color=models.textfield(max_length=100)
age=models.integerfield()
name=models.textfield(最大长度=100)
size=models.integerfield()
代码::python
from django.core.paginator import paginator
from djacompoundqueryset import compoundqueryset=分页器(组合查询集,10)
代码::python
from django.core.paginator import paginator
from djacompoundqueryset import compoundquerysetmax_items=100)
现在可以在视图中遍历这些模型,显示年龄。max_items表示您将
使用的项永远不会超过那么多,因此请限制查询的数量。如果您有
封顶的分页,那么这很有用。
性能
----
目标是击败原始实现(将所有记录加载到内存并在其中处理),但是
我们可能无法击败rawsql union all monster。如果性能非常重要,您可能需要这样做。
如果在django paginator中使用,我们通常会对每个queryset执行1 count(*)查询,然后只加载
所需的记录。
————————————————————————————————————————————————————————————————————————————————| pypi image::https://badge.fury.io/py/django compoundqueryset.svg
:target:https://pypi.python.org/pypi/django compoundqueryset
一个小django应用程序允许在不同表之间进行复合查询。
对于所述结果的分页特别有用。
支持的django版本:1.8,1.9,1.10
支持的python版本:2.7、3.3、3.4,3.5
>从这里可以获得``django compoundqueryset``的源代码:
:
有时你可能希望将两个具有相似字段的不同表组合起来,并将它们显示给用户。例如:
…代码::来自django.db导入模型的python
name=models.textfield(max_length=100)
color=models.textfield(max_length=100)
name=models.textfield(最大长度=100)
size=models.integerfield()
代码::python
from django.core.paginator import paginator
from djacompoundqueryset import compoundqueryset=分页器(组合查询集,10)
代码::python
from django.core.paginator import paginator
from djacompoundqueryset import compoundquerysetmax_items=100)
现在可以在视图中遍历这些模型,显示年龄。max_items表示您将
使用的项永远不会超过那么多,因此请限制查询的数量。如果您有
封顶的分页,那么这很有用。
性能
----
目标是击败原始实现(将所有记录加载到内存并在其中处理),但是
我们可能无法击败rawsql union all monster。如果性能非常重要,您可能需要这样做。
如果在django paginator中使用,我们通常会对每个queryset执行1 count(*)查询,然后只加载
所需的记录。