Django的通用表表达式(CTE)

django-cte的Python项目详细描述


#django的通用表表达式(cte)

[![构建状态](https://travis ci.org/dimagi/django cte.png)(https://travis ci.org/dimagi/django cte)
[![PYPI版本](https://badge.fury.io/py/django-cte.svg)(https://badge.fury.io/py/django-cte)



`` ` `
pip install django-cte
` `

`
` `
` ` `
` ` `/>
` ` `使用
` `//` ` ` `使用“with”构造。自定义的“ctemanager”用于将cte添加到最终查询中。

``py
on_delete=cascade)
amount=integerfield(默认值=0)



cte=with(
order.objects
.values(“region_id”)
.annotate(total=sum(“amount”)


orders=(
cte.join(order,region=cte.col.region_id)
。使用_cte(cte)
。注释(region_total=cte.col.total)
.order_by(“amount”)

`````

此查询返回的订单将具有一个“region_total”属性,该属性包含订单区域中所有订单金额的总和。



表达式

递归CTE查询可以使用“with.recursive”构造。

```py
类区域(模型):
对象=CTemanager()
名称=文本字段(主关键字=真)
父对象=外键(“self”,空值=真,在删除=级联)

def make_regions_cte(CTE):
返回区域.objects.filter(
#从根节点开始
父节点isnull=true
。值(
“name”,
路径=f(“name”),
深度=value(0,输出字段=integerfield(),
)。并集(
递归并集:获取子节点
cte.join(region,parent=cte.col.name)。值(
“name”,
path=concat(
cte.col.path,value(“\x01”),f(“name”),
output_field=textfield(),
depth=cte.col.depth+value(1,output_field=integerfield(),
),
all=true,





region=(
>cte.join(region,name=cte.col.col.col.name)
region=(
>cte.join(region,region,name=cte.col.col.col.name)






















将具有“path”和“depth”`属性。
结果将按“path”排序(按区域名分层)。在本例中,
`path`是一个以根
区域开始的“'\x01'`”分隔的区域名字符串。


有关更高级的示例,请参见[tests](./tests)。




flake8

notests
flake8--config=setup.cfg
`````

`````上传到pypi


package并上传生成的文件。

`````
pip install-r pkg需要.txt

python setup.py sdist bdist`` u wheel
wine upload dist/*
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在数据库中插入行时自动发送电子邮件?   从进程输出读取的Java问题   java质疑StyledDocument和JTextPane之间的关系,以及接口的正确使用   java错误getPlayer(args[0]);   java如何使Spring引导在重新打包的WAR中包含清单文件?   Java中的除法与模   java使用2d数组和JfreeChart制作散点图   java扩展SonarQube FindBugs插件和自定义FindBugs插件   javaspring:hibernate+ehcache   具有不正确的equals和HashCode实现的java HashMap   java Jaspersoft报告网。旧金山。jasperreports。发动机例外:net。旧金山。jasperreports。发动机填满JRepressionEvalException:计算表达式时出错   java如果输入与其变量不匹配,如何添加错误   在java中使用简单数组[]实现队列   无法启动上下文路径/hsx上的java FAIL应用程序