【发布时间】:2021-09-23 16:29:24
【问题描述】:
我正在尝试使用 django 查询过滤一些 ID 并尝试有效地执行此操作,我希望获得与我之前创建的效率较低的函数相同的结果,但我遇到了字典键使用的问题问
from tmd import models
from django.db.models import Q
category = {
"utility": models.Account.UTILITY,
"system": models.Account.SYSTEM
}
country = {
"United States": models.Country.objects.get(name='USA'),
"Canada": models.Country.objects.get(name='CA'),
}
def get_a(stage=None, **kwargs):
base_args =[]
base_args.append(Q(stage__in=stage))
for key, value in kwargs.items():
base_args.append(Q(key= value))
a_ids = models.Account.objects.filter(*base_args).values_list('id', flat=True)
print("Number of a_ids: {}".format(a_ids.count()))
return a_ids
输入:
a_ids = get_a(country=country["USA"], category=category["utility"])
问题正好在这一行:
base_args.append(Q(key= value))
如果我可以输入为每次迭代更改键,这将得到解决
【问题讨论】:
标签: python python-3.x django