如何使用变量而不是在过滤器查询集中给出字段django

问题描述 投票:0回答:1

如果我有这样的课程:

class Name: field1 = ... field2 = ... ... 
我不知道用户应该给出什么字段或模型,因此键将是模型中的字段名称,值是我应该寻找的值。 并基于一些如果我必须用 field1 或 2 过滤它们并且我从变量的输入中获得它们?

如果 name 是 Name 的实例,并且 key = field1 且 value='example_to_look' ,我想要

name.objects.filter(key=value)
不是
name.objects.filter(field1=value)

我想在不同的类和领域使用它,所以 if 不是我想要的。 raw() 总是触发一个新的查询,并且不考虑之前的过滤,但我需要它们全部,而且我必须一一过滤!

python django database django-queryset django-orm
1个回答
0
投票

我们必须创建一个像 do_filter={key:value} 这样的字典,然后对每个字典使用 query_set =model.objects.all() 然后 query_set.filter(**do_filter) :) 这样你就可以根据给定的变量动态生成我们的query_set。

© www.soinside.com 2019 - 2024. All rights reserved.