多个数组列表值上的Django过滤器

2024-09-30 12:14:05 发布

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

我必须根据3个字段进行筛选:DoctorClient和{}。每一个都是一个id数组,所以我想用这些id进行过滤。在

我的django视图代码:

my_dict = {
    'BranchId': [0,1,2,4],
    'DoctorId': [2,4,5],
    'ClientId': [2,3,5],
}

Branches = my_dict['BranchId']
Doctors = my_dict['DoctorId']
Clients = my_dict['ClientId']

query = Event.objects.all().filter(
    e_d__in=Doctors,
    e_b__in=Branches,
    e_c__in=Clients)
print(query) 

Tags: djangoinclientidmy数组querydict
1条回答
网友
1楼 · 发布于 2024-09-30 12:14:05

我不完全理解你的问题到底是什么,但我将试着解释一下查询的概念。在

{如果要在字段中提供一个值,请使用^的值。在

这里是您的代码的简化版本(它具有相同的功能,但具有更明确的名称和更少的代码行)。在

my_dict = {
    'branch_id_list': [0, 1, 2, 4],
    'doctor_id_list': [2, 4, 5],
    'client_id_list': [2, 3, 5],
}
query = Event.objects.filter(
    e_d__in=my_dict['branch_id_list'],
    e_b__in=my_dict['doctor_id_list'],
    e_c__in=my_dict['client_id_list'])
print(query)

这段代码期望您的模型Event有3个字段e_ae_b和{};每个字段都必须是IntegerField(或者类似的以int为基类型的类似字段)。在

查询将返回满足3个条件的所有Event实例;也就是说,3个字段中的每一个都需要在相应的列表中有一个值。在

这能回答你的问题吗?在

相关问题 更多 >

    热门问题