Django Query的一些方法

django filter values 别名(alias)

方法一:

在values中使用 django.db.models.F 进行重命名,注意 不需要重命名的参数需要放前面

orders = Order.objects.filter(
            ...
        ).values(
        	'xxxx',
            transaction_id=F('orderdetails__transaction_id'),
            time_end=F('orderdetails__time_end'),
        )
方法二:

使用annotate + F进行重命名,在values中直接使用新的命名即可

        orders = Order.objects.filter(
        	...
        ).annotate(
            transaction_id=F('orderdetails__transaction_id'),
            time_end=F('orderdetails__time_end'),
        ).values(
            'transaction_id',
            'time_end',
        )

django F 连接字符

使用 django.db.models.functions.Concat 方法进行数据库字段的连接

orders = Order.objects.filter(
			...
        ).values(
            ...
            org_name=Concat(
                F('student__org__parent__parent__name'),
                F('student__org__parent__name'),
                F('student__org__name')
            ),
        )
上一篇:为什么闪电网络上HTLC的并发数量被限制为483个?


下一篇:移动开发作业1