Djang的Qobjects

2024-04-25 09:09:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我如何通过过滤器得到的var值来选择在循环中附加一个值?你知道吗

items = Item.objects.filter(Q(var__icontains=term) | Q(another_var__icontains=term))
res = []
for item in items:
    res.append({
        'val': item.(var or another_var?),
    })

Tags: in过滤器forobjectsvaranotheritemsres
2条回答

恐怕您必须手动检查var/anohter_var,才能找到查询集中匹配的变量。你知道吗

items = Item.objects.filter(Q(var__icontains=term) |
                            Q(another_var__icontains=term))
uterm = term.upper()
res = []
for item in items:
    value = item.var if uterm in item.var.upper() else item.another_var
    res.append({'val': value})

在本地检查,或者执行两个不同的查询。 第一种选择:

items = Item.objects.filter(Q(var__icontains=term) | Q(another_var__icontains=term))
res = []
for item in items:
    if term.lower() in item.var.lower():
        v = item.var
    else:
        v = item.another_var
    res.append({
        'val': v,
    })

第二种选择,只需执行两个查询(两个过滤器调用)。你知道吗

相关问题 更多 >