django - python django - 如果再次搜索多行的多列值并且几行不存在,则查询返回空白结果
问题描述
我有一个列表,即ids_found
有几个值。这些值是数据库表中的主键news
。如果表中存在所有相应的行,那么我会得到预期的结果,即ids_found_result
. 但是,如果缺少其中任何一个,则结果将只是一个空列表。代码如下:
ids_found=[2,3,34]
ids_found_result=[]
clauses = ' '.join(['WHEN id=%s THEN %s' % (pk, i) for i, pk in enumerate(ids_found)])
ordering = 'CASE %s END' % clauses
ids_found_result = news.objects.filter(pk__in=ids_found).extra(
select={'ordering': ordering}, order_by=('ordering',))
ids_found_result = list(ids_found_result)
当数据库中缺少一行或多行时,如何使其产生结果?如果n
缺少行数,则预期结果应该是 ids_found_result
包含的元素减去n
。
解决方案
推荐阅读
- qt - 我是否遗漏了什么或者这是创建自定义控件/组件的方式
- python - 如何使用 OpenCV-Python 更改某个区域的色调
- asp.net-mvc - Asp.net Core OpenIdConnect (OIDC) 在哪里验证状态参数
- javascript - 缩小后适合 X 轴和 scaleXY 以保持画布居中
- c# - 使用动态数量的元素寻址 JObject
- android - 华为在应用内购买的版本与从安卓购买的普通应用内是否相同
- api - Flutter DIO:使用带有 Dio 包的二进制体上传图像
- algorithm - 当边在 dijkstra 算法中具有相同的权重时,下一个顶点是什么?
- lvm - LVM 无法回收空间
- javascript - Discord Bot:为文本字符串创建同义词